本文知识点来源于网络,仅限学习笔记使用,记录学习过程与心得,如有不适,请联系。
准备数据
员工表:employee
部门表:department
内连接
查询两张表共有的部分
SELECT * FROM employee e INNER JOIN department d ON e.dep_id = d.id;
查询结果 :王八因为是部门6,而部门表没有部门6,所以没有被查出来
左连接,右连接
左连接:把左边表的全部内容查询出来,右边表只查询出满足条件的记录。
SELECT * FROM employee e LEFT JOIN department d ON e.dep_id = d.id;
查询结果:
右连接同理:
把右边表的全部内容查询出来,左边表只查询出满足条件的记录
SELECT * FROM employee e RIGHT JOIN department d ON e.dep_id = d.id;
扩展:
查询左表中特有的数据:
思路:可以通过左连接变形而来
SELECT * FROM employee e LEFT JOIN department d ON e.dep_id = d.id WHERE d.id IS NULL;
全连接
两个表全部的信息都查询出来
union 默认会去重 ,union all不会
SELECT * FROM employee e LEFT JOIN department d ON e.dep_id = d.id;
UNION
SELECT * FROM employee e RIGHT JOIN department d ON e.dep_id = d.id;
版权声明:本文为weixin_42985717原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。