美文网首页
MySql——join

MySql——join

作者: 其实我很菜啊 | 来源:发表于2017-07-17 15:20 被阅读0次

1.Left Outer Join左外连接

设数据库中有A、B两表,A和B有共同的交集C,当我们想查询出A的所有记录时我们可以使用左外连接:
select <select_list> from TableA A Left Join TableB B on A.key=B.key

1.png

当我们只想查询出只有A表才有的数据而B表没有的数据时,即去掉集合C
select <select_list> from TableA A Left Join TableB B on A.key=B.key where B.key is NULL

2.png

2.右外连接

右外连接与左连接是类似的,只是我们把哪个表看为基础表的区别而已。左外连接将A作为基础表,右连接我们把B作为基础表。在A、B表中,查询出B表的所有记录
select <select_list> from TableA A Right Join TableB B on A.key=B.key

3.png

只查询出B表存在而A表没有的记录
select <select_list> from TableA A Right Join TableB B on A.key=B.key where B.key is NULL

4.png

3.全连接

当需要查询出A、B两表的所有数据时可以使用全链接(Full Join)但在Mysql中是不支持Full Join的。但我们可以通过左连接+右连接的联合达到Full Join的效果,即:
select <select_list> from TableA A Left Join TableB B on A.key=B.key UNION ALL select <select_list> from TableA A Right Join TableB B on A.key=B.key

4.交叉连接

交叉连接(cross join)又称为笛卡儿积连接(cartesian join)或差乘,如果A和B是两个集合,它们的交叉连接记为:A x B。即A表中的一条记录与B表中每一条记录进行匹配,产生一个新的结果集。如果A中有4条记录,B中有5条记录,则会产生20条结果
select <select_listA>,<select_listB> from TableA A CROSS JOIN TableB B

相关文章

网友评论

      本文标题: MySql——join

      本文链接:https://www.haomeiwen.com/subject/ermohxtx.html