处理连接过程中另外一张表没有相关数据不显示(2)

  INNER JOIN 关键字在表中存在至少一个匹配时返回行。如果 "Persons" 中的行在 "Orders" 中没有匹配,就不会列出这些行。

2)、SQL LEFT JOIN 关键字

  LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。(可以解决上面的问题

LEFT JOIN 关键字语法

SELECT column_name(s) FROM table_name1 LEFT JOIN table_name2 ON table_name1.column_name=table_name2.column_name

  注释:在某些数据库中, LEFT JOIN 称为 LEFT OUTER JOIN。

左连接(LEFT JOIN)实例

  现在,我们希望列出所有的人,以及他们的定购 - 如果有的话。

  您可以使用下面的 SELECT 语句:

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons LEFT JOIN Orders ON Persons.Id_P=Orders.Id_P ORDER BY Persons.LastName

结果集:

LastNameFirstNameOrderNo
Adams   John   22456  
Adams   John   24562  
Carter   Thomas   77895  
Carter   Thomas   44678  
Bush   George      

  LEFT JOIN 关键字会从左表 (Persons) 那里返回所有的行即使在右表 (Orders) 中没有匹配的行

  3)、SQL RIGHT JOIN 关键字

  RIGHT JOIN 关键字会右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行。

RIGHT JOIN 关键字语法

SELECT column_name(s) FROM table_name1 RIGHT JOIN table_name2 ON table_name1.column_name=table_name2.column_name

  注释:在某些数据库中, RIGHT JOIN 称为 RIGHT OUTER JOIN。

右连接(RIGHT JOIN)实例

  现在,我们希望列出所有的定单,以及定购它们的人 - 如果有的话。

  您可以使用下面的 SELECT 语句:

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons RIGHT JOIN Orders ON Persons.Id_P=Orders.Id_P ORDER BY Persons.LastName

结果集:

LastNameFirstNameOrderNo
Adams   John   22456  
Adams   John   24562  
Carter   Thomas   77895  
Carter   Thomas   44678  
        34764  

  RIGHT JOIN 关键字会从右表 (Orders) 那里返回所有的行即��在左表 (Persons) 中没有匹配的行

4)、SQL FULL JOIN 关键字

只要其中某个表存在匹配,FULL JOIN 关键字就会返回行。

FULL JOIN 关键字语法

SELECT column_name(s) FROM table_name1 FULL JOIN table_name2 ON table_name1.column_name=table_name2.column_name

  注释:在某些数据库中, FULL JOIN 称为 FULL OUTER JOIN。

全连接(FULL JOIN)实例

  现在,我们希望列出所有的人,以及他们的定单,以及所有的定单,以及定购它们的人。

  您可以使用下面的 SELECT 语句:

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.heiqu.com/0c5110a4f7abd8addeb3557431e67009.html