赞
踩
以上7种join,从左到右从上到下分别是左连接、右连接、左连接之后去除共有部分、内连接、右连接之后去除共有部分、全连接、全连接之后去除共有部分
接下来我使用mysql数据库来建表进行解释:
首先建立表a:
之后建立表b:
请注意:表a和表b的字段名称有一个相同,另外一个不同,其中两个表中的id也是一个相同,另外一个不同,我们接下来将用这两张表来模拟以上7中join的连接情况;
1、左连接 select * from a left join b on a.id = b.id 2、右连接 select * from a right join b on a.id = b.id 3、左连接之后去除共有部分 select * from a left join b on a.id = b.id where b.id is null 4、内连接 select * from a inner join b on a.id = b.id 5、右连接之后去除共有部分 select * from a right join b on a.id = b.id where a.id is null 6、全连接 select * from a left join b on a.id = b.id union select * from a right join b on a.id = b.id 由于mysql不支持全连接写法,所以使用上面的sql语句替代下面的全连接sql语句: select * from a FULL OUTER JOIN b on a.id = b.id(mysql不支持) 7、全连接之后去除共有部分 select * from a left join b on a.id = b.id where b.id is null union select * from a right join b on a.id = b.id where a.id is null 由于mysql不支持全连接写法,所以使用上面的sql语句替代下面的全连接sql语句: select * from a FULL OUTER JOIN b on a.id = b.id where a.id is null or b.id is null(mysql不支持)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。