SQL中的左连接(LEFT JOIN)
1.LEFT JOIN
的定义和用法:LEFT JOIN
是SQL中用于基于共有列连接两个表的语句,它会选择具有匹配值的记录以及左表中的所有其余行。例如,SELECT Customers.customer_id, Customers.first_name, Orders.item FROM Customers LEFT JOIN Orders ON Customers.customer_id = Orders.customer_id;
将基于customer_id
列连接Customers
和Orders
表。
2.LEFT JOIN
语法:LEFT JOIN
的语法为SELECT columns_from_both_tables FROM table1 LEFT JOIN table2 ON table1.column1 = table2.column2
,其中table1
是左表,table2
是右表,column1
和column2
是两个表中的相关列。
3.结合WHERE
子句和使用别名:可以结合使用WHERE
子句筛选左连接的结果,例如WHERE Orders.amount >= 500
。此外,还可以在LEFT JOIN
中使用别名来简化查询,例如FROM Categories AS C LEFT JOIN Products AS P ON C.cat_id = P.cat_id
。
SQL 的 LEFT JOIN
基于共有列连接两个表。它选择这些列中具有匹配值的记录以及左表中的其余行。
示例
-- Customers 是左表
-- Orders 是右表
SELECT Customers.customer_id, Customers.first_name, Orders.item
FROM Customers
LEFT JOIN Orders
ON Customers.customer_id = Orders.customer_id;
这里,代码基于 customer_id
将 Customers
和 Orders
表左连接在一起,customer_id
是两个表共有的。结果集包含:
- 来自
Customers
表的customer_id
和first_name
列(包括那些在Orders
表中没有customer_id
值的记录) - 来自
Orders
表的item
列
SQL LEFT JOIN 语法
SQL LEFT JOIN
语句的语法是:
SELECT columns_from_both_tables
FROM table1
LEFT JOIN table2
ON table1.column1 = table2.column2
这里,
table1
是要连接的左表table2
是要连接的右表column1
和column2
是两个表中的相关列
示例:SQL 左连接
SELECT Customers.customer_id, Customers.first_name, Orders.amount
FROM Customers
LEFT JOIN Orders
ON Customers.customer_id = Orders.customer;
这段代码的工作原理如下:
这里,SQL 命令选择了 Customers
表的 customer_id
和 first_name
列以及 Orders
表的 amount
列。
结果集将包含 customer_id
(来自 Customers
表)和 customer
(来自 Orders
表)之间有匹配的行,以及 Customers
表中的所有其余行。
带 WHERE 子句的 LEFT JOIN
SQL 的 LEFT JOIN
语句可以有一个可选的 WHERE 子句。例如,
FROM Customers
LEFT JOIN Orders
ON Customers.customer_id = Orders.customer
WHERE Orders.amount >= 500;
这里,SQL 命令连接 Customers
和 Orders
表,并选择 amount
大于或等于 500 的行。
使用别名的 SQL LEFT JOIN
我们可以在 LEFT JOIN
内使用 AS 别名 来使查询简洁明了。例如,
-- 为 Products 表使用别名 P
SELECT C.cat_name, P.prod_title
FROM Categories AS C
LEFT JOIN Products AS P
ON C.cat_id= P.cat_id;
这里,SQL 命令左连接 Categories
和 Products
表,同时分别为它们指定别名 C 和 P。
推荐阅读