关于SQL 的多表连接问题

1.多表连接类型

  • JOIN: 如果表中有至少一个匹配,则返回行
  • INNER JOIN(内连接):如果表中有至少一个匹配,则返回行
  • LEFT JOIN(左连接): 即使右表中没有匹配,也从左表返回所有的行
  • RIGHT JOIN(右连接): 即使左表中没有匹配,也从右表返回所有的行
  • FULL JOIN(全连接): 只要其中一个表中存在匹配,就返回行

2.示例

请看 "Persons" 表:

请看 "Orders" 表:

如果我们使用from:SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons, Orders WHERE Persons.Id_P = Orders.Id_P;

结果集:

如果我们使用join:SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons JOIN Orders ON Persons.Id_P = Orders.Id_P ORDER BY Persons.LastName

结果集:

INNER JOIN 与 JOIN 是相同的。

如果我们使用left join:SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons LEFT JOIN Orders ON Persons.Id_P=Orders.Id_P ORDER BY Persons.LastName

结果集:

如果我们使用right join:SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons RIGHT JOIN Orders ON Persons.Id_P=Orders.Id_P ORDER BY Persons.LastName

结果集:

如果我们使用full join:SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons FULL JOIN Orders ON Persons.Id_P=Orders.Id_P ORDER BY Persons.LastName

结果集:

原文地址:https://www.cnblogs.com/mcahkf/p/9086826.html