SQL中的连接(JOINS)
提示
JOIN
语句的作用:SQL 中的JOIN
命令通过共同列将两个表连接起来,并选择这些列中具有匹配值的记录。JOIN
语法:基本语法为SELECT columns_from_both_tables FROM table1 JOIN table2 ON table1.column1 = table2.column2
,其中table1
和table2
是要连接的表,column1
和column2
是两个表中的相关列。JOIN
类型和别名:SQL 中存在多种JOIN
类型,包括INNER JOIN
、LEFT JOIN
、RIGHT JOIN
和FULL OUTER JOIN
。使用AS
别名可以使查询更简短和清晰。
SQL 中的 JOIN
命令基于两个表的共同列连接这些表,并选择这些列中具有匹配值的记录。
示例
-- 基于它们的 customer_id 列的共同值
SELECT Customers.customer_id, Customers.first_name, Orders.item
FROM Customers
JOIN Orders
ON Customers.customer_id = Orders.customer_id;
这里,SQL 命令基于两个表中 customer_id
列的共同值连接 Customers
和 Orders
表。
结果集将包括:
Customers
表的customer_id
和first_name
列Orders
表的item
列
SQL JOIN
语法
SQL JOIN
语句的语法是:
SELECT columns_from_both_tables
FROM table1
JOIN table2
ON table1.column1 = table2.column2
这里,
table1
和table2
是要连接的两个表column1
是table1
中与table2
中的column2
相关的列
注意: SQL 中有 4 种类型的 JOIN。但 INNER JOIN
和 JOIN
是指同一件事。
示例 1:SQL JOIN
SELECT Customers.customer_id, Customers.first_name, Orders.amount
FROM Customers
JOIN Orders
ON Customers.customer_id = Orders.customer;
这是这段代码的工作原理:
这里,SQL 命令选择了 Customers
表的 customer_id
和 first_name
列以及 Orders
表的 amount
列。
结果集将包含 customer_id
(来自 Customers
表)和 customer
(来自 Orders
表)之间有匹配的行。
SQL JOIN
的类型
正如我们提到的,本文中执行的 JOIN
命令是 INNER JOIN
。
在 SQL 中,我们有四种主要类型的 join:
SQL JOIN
和别名
我们可以使用 AS 别名 使查询简短和清晰。例如,
-- 对 Orders 表使用别名 O
SELECT C.customer_id, C.first_name, O.amount
FROM Customers AS C
JOIN Orders AS O
ON C.customer_id = O.customer;
这里,SQL 命令在连接 Customers
和 Orders
表时分别为它们分配别名 C 和 O。
此外,我们还可以使用 AS
别名暂时更改列名。例如,
-- 对 Orders 表使用别名 O
SELECT C.customer_id AS cid, C.first_name AS name, O.amount
FROM Customers AS C
JOIN Orders AS O
ON C.customer_id = O.customer;
除了给表分配别名之外,上述 SQL 命令还为 Customers
表的列分配了别名:
customer_id
列的别名是cid
first_name
列的别名是name