SQL中的连接查询详解


本文整理自网络,侵删。

Join 连接 (SQL Join)

SQL Join (连接) 是利用不同数据表之间字段的关连性来结合多数据表之检索。

SQL Join是结合多个数据表而组成一抽象的暂时性数据表以供数据查询,在原各数据表中之纪录及结构皆不会因此连接查询而改变。

这是一个客户数据表「customers」:

C_Id

Name

City

Address

Phone

1

张一

台北市

XX路100号

02-12345678

2

王二

新竹县

YY路200号

03-12345678

3

李三

高雄县

ZZ路300号

07-12345678

而这是产品订单的数据表「orders」:

O_Id

OrderNo

C_Id

1

2572

3

2

7375

3

3

7520

1

4

1054

1

5

1257

5

其中,C_Id 是客户数据表中的主键 (Primary Key) 字段,我们怎么将这两张不同的数据表依相关字段来作个连接结合以便查询呢?这就是接下来的主题 Join!

SQL 的 Join 查询有哪几种类型?

  • Inner Join : 内部连接

  • LEFT (OUTER) JOIN : 左外部连接

  • RIGHT (OUTER) JOIN : 右外部连接

  • FULL (OUTER) JOIN : 全部外部连接

  • CROSS JOIN : 交叉连接

  • NATURAL JOIN : 自然连接

INNER JOIN - 内部连接

INNER JOIN (内部连接) 为等值连接,必需指定等值连接的条件,而查询结果只会返回符合连接条件的数据。

INNER JOIN 语法 (SQL INNER JOIN Syntax)

SELECT table_column1, table_column2···
FROM table_name1
INNER JOIN table_name2
ON table_name1.column_name=table_name2.column_name;

SELECT table_column1, table_column2···
FROM table_name1
INNER JOIN table_name2
USING (column_name);

INNER JOIN 查询实例 (Example)

现在我们想列出所有客户的订单编号数据,我们可以作一个 INNER JOIN 查询:

SELECT customers.Name, orders.Order_No
FROM customers
INNER JOIN orders
ON customers.C_Id=orders.C_Id;

其中用点号连接之「XXX.YYY」表示XXX数据表中的YYY字段。

阅读剩余部分

相关阅读 >>

mysql分区表管理命令汇总

sql和mysql语法有什么不同

sqlserver按顺序执行多个脚本的方法(sqlcmd实用工具使用方法)

sql server版本有哪些

sql中like的用法

sql属于什么数据库语言?

sql cmd是什么意思?

sql server2016正式版安装配置方法图文教程

删除表字段的sql语句有哪些?

mysql查询优化之explain的深入解析

更多相关阅读请进入《sql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...