本文整理自网络,侵删。
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字段。
相关阅读 >>
sqlserver按顺序执行多个脚本的方法(sqlcmd实用工具使用方法)
更多相关阅读请进入《sql》频道 >>
数据库系统概念 第6版
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。