Mysql常见join

mysql常见7种join

1   所有有门派的人员信息 

( A、B两表共有 图中3)

 select * from t_emp a inner join t_dept b on a.deptId = b.id; 

 

2   列出所有用户,并显示其机构信息 

 (A的全集 图中1)

 select * from t_emp a left join t_dept b on a.deptId = b.id; 

 

3   列出所有门派 

(B的全集 图中2)

 select * from  t_dept  b  

 

4   所有不入门派的人员 

(A的独有 图中1a)

select * from t_emp a left join t_dept b on a.deptId = b.id where b.id is null; 

 

5   所有没人入的门派 

(B的独有 图中2a)

 select * from t_dept b left join  t_emp a on a.deptId = b.id where a.deptId is null;  

 

6  列出所有人员和机构的对照关系

(AB全有  图中4)

#MySQL Full Join的实现 因为MySQL不支持FULL JOIN,下面是替代方法

 #left join + union(可去除重复数据)+ right join

 

SELECT * FROM t_emp A LEFT JOIN t_dept B ON A.deptId = B.id

UNION

SELECT * FROM t_emp A RIGHT JOIN t_dept B ON A.deptId = B.id

 

7 列出所有没入派的人员和没人入的门派

(A的独有+B的独有 图中4a)

SELECT * FROM t_emp A LEFT JOIN t_dept B ON A.deptId = B.id WHERE B.id IS NULL

UNION

SELECT * FROM t_emp A RIGHT JOIN t_dept B ON A.deptId = B.id WHERE A.deptId IS NULL;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值