Mysql:常见的7种join

常见的七种join

现在假设有A表即employees表,B表departments表

join1

image
上图使用左外连接即可做到,sql:

SELECT *
FROM employees e
LEFT JOIN departments d ON e.department_id = d.department_id

join2

image
上图使用右外连接即可做到,sql:

SELECT *
FROM employees e
RIGHT JOIN departments d ON e.department_id = d.department_id

join3

image
上图使用内连接即可做到,sql:

SELECT *
FROM employees e
INNER JOIN departments d ON e.department_id = d.department_id

join4

image
sql如下,记得是B表的部门ID为空,而不是A表。

SELECT *
FROM employees e
LEFT JOIN departments d ON e.department_id = d.department_id
WHERE d.department_id is null

join5

image
sql如下,记得是A表的部门ID为空,而不是B表。

SELECT *
FROM employees e
RIGHT JOIN departments d ON e.department_id = d.department_id
WHERE e.department_id is null

join6

image
其实这个就是满外连接,但很可惜mysql并不支持,需要我们自己手动去拼接。可以采用join1 + join5 来实现;sql如下:

SELECT *
FROM employees e
LEFT JOIN departments d ON e.department_id = d.department_id
UNION ALL
SELECT *
FROM employees e
RIGHT JOIN departments d ON e.department_id = d.department_id
WHERE e.department_id is null

join7

image
join4 + join5拼接即可:

SELECT *
FROM employees e
LEFT JOIN departments d ON e.department_id = d.department_id
WHERE d.department_id is null
UNION ALL
SELECT *
FROM employees e
RIGHT JOIN departments d ON e.department_id = d.department_id
WHERE e.department_id is null
posted @   爱编程DE文兄  阅读(141)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
历史上的今天:
2020-08-01 e3商城_day05
点击右上角即可分享
微信分享提示