﹎雨檐∝

导航

sql inner join , left join, right join , union,union all 的用法和区别

Persons 表:

Id_PLastNameFirstNameAddressCity
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York
3 Carter Thomas Changan Street Beijing

 

 

 

 

 

"Orders" 表:

 

Id_OOrderNoId_P
1 77895 3
2 44678 3
3 22456 1
4 24562 1
5 34764 65

 

 

 

 

 

 1、inner等同于inner join :在表中存在至少一个匹配时,INNER JOIN 关键字返回行。

inner用法:

 

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER 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

 

 

 

 

 

2、left join:LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。

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

输出结果

LastName FirstName OrderNo
Adams John 22456
Adams John 24562
Carter Thomas 77895
Carter Thomas 44678
Bush George  

 

 

 

 

 

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

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

输出结果:

LastName FirstName OrderNo
Adams John 22456
Adams John 24562
Carter Thomas 77895
Carter Thomas 44678
     34764

 

 

 

 

 

 

4、union : union 操作符用于合并两个或多个 SELECT 语句的结果集。不会出现重复数据

5、union all :union all 操作符用于合并两个或多个 SELECT 语句的结果集。会出现重复数据

posted on 2015-08-28 17:05  ﹎雨檐∝  阅读(1545)  评论(0编辑  收藏  举报