MySQL的七种 join 连接

一、内连接

内连接也叫自然连接同时也叫全等连接,即左边表和右边表共有数据的查询

select *  from  表A a  inner  join  表B b  on  a.key = b.key;

二、左连接

左连接,即查询左边表的独有数据

select  *  from  表A a  left  join  表B b  on  a.key = b.key  where  b.key is null;

三、左外连接

左外连接,查询左边表的所有数据,即左边表独有的数据+左边和右边的共有的数据

select  *  from  表A a  left  join  表B a  on  a.key = b.key;

四、右连接

右连接,即查询右边表的独有数据

select  *  from  表A a  right join 表B b  on  a.key = b.key  where  a.key is  null;

五、右外连接

右外连接,查询右边表的所有数据,即右边表独有的数据+右边表和左边表共有的数据

select  *  from  表A a  right join  表B b  on  a.key = b.key;

六、全连接

全连接,即左边表独数据+右边表独数据(MySQL不支持

可用如下方式实现全连接的效果:

select * from  表A a  left join  表B b  on  a.key = b.key where a.key is null
union
select * from  表A a  right join  表B b  on  a.key = b.key where b.key is null;

七、全外连接

全外连接,即左边表数据+右边表数据+左边表和右边表共有数据查询(MySQL不支持

select * from  表A a  left join  表B b  on  a.key = b.key 
union
select * from  表A a  right join  表B b  on  a.key = b.key;

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章