首页 > 数据库技术 > 详细

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

时间:2015-08-28 19:39:05      阅读:286      评论:0      收藏:0      [点我收藏+]

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 语句的结果集。会出现重复数据

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

原文:http://www.cnblogs.com/zxLy/p/4767019.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!