13 JOIN连接的用法

13.1 JOIN连接的作用

JOIN连接用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段。最常见的JOIN类型:INNER JOIN(简单的JOIN)。INNER JOIN从多个表中返回满足JOIN条件的所有行。

示例数据库:

Orders表,

 

 Customers表,

 

 13.2 JOIN实例

--查询每个订单ID是哪些客户订购的,以及具体的订单时间

SELECT o.订单,c.姓名,o.订单日期
FROM Orders AS o
INNER JOIN Customers AS c
ON o.客户ID=c.客户ID; 

13.3 不同的JOIN

下面是可以使用的不同的JOIN类型:


INNER JOIN:如果表中有至少一个匹配,则返回行;

LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行;

RIGHT JOIN:即使左表中没有匹配,也从右表中返回所有的行;

FULL JOIN:只要其中一个表中存在匹配,则返回行。

13.4 INNER JOIN

内部连接INNER JOIN关键字选择两个表中具有匹配值的记录。

SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.coulumn_name=table;

注意:INNER JOIN与JOIN是相同的

 

 13.5 LEFT JOIN

左连接LEFT JOIN关键字返回左表(表1)中的所有行,即使在右表(表2)中没有匹配。如果在正确的表中没有匹配,结果是NULL。

SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name=table2.column_name;

或者

SELECT column_name(s)
FROM table1
LEFT OUTER JOIN table2
ON table1.column_name=table2.column_name;

注意:在一些数据库中,LEFT JOIN也称为LEFT OUTER JOIN。

 

 示例:

--查看客户Customers表中的所有用户是否都有下单

SELECT c.姓名,o.订单ID,o.订单日期
FROM Customers AS c
LEFT JOIN Orders AS o
ON o.客户ID=c.客户ID;

13.6 RIGHT JOIN

右连接RIGHT JOIN关键字返回右表(表2)的所有行,即使在左表(表1)上没有匹配。如果左表没有匹配,则结果为NULL。

SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name=table2.column_name;

注意:在一些数据库中,RIGHT JOIN也被称为RIGHT OUTER JOIN。

 

 13.7 FULL OUTER JOIN

当左表(表)或者右表(表2)记录匹配时,FULL OUTER JOIN关键字将返回所有记录。

注意:FULL OUTER JOIN可能会返回非常大的结果集!

SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name=table2.column_name;

 

 全连接就是将table1和table2的内容完全显示,不管有没有匹配上。

posted @ 2021-05-26 18:33  赵Gary  阅读(648)  评论(0)    收藏  举报