21 多表查询的7种join

join

7种JOIN的实现:

中图:内连接

SELECT employee_id,department_name
FROM employees e JOIN departments d
ON e.department_id = d.department_id;

左上图:左外连接

SELECT employee_id,department_name
FROM employees e LEFT JOIN departments d
ON e.department_id = d.department_id;

右上图:右外连接

SELECT employee_id,department_name
FROM employees e RIGHT JOIN departments d
ON e.department_id = d.department_id;

左中图:

SELECT employee_id,department_name
FROM employees e LEFT JOIN departments d
ON e.department_id = d.department_id
WHERE d.department_id IS NULL;

右中图:

SELECT employee_id,department_name
FROM employees e RIGHT JOIN departments d
ON e.department_id = d.department_id
WHERE e.department_id IS NULL;

左下图:满外连接

方式1:左上图 UNION ALL 右中图

SELECT employee_id,department_name
FROM employees e LEFT JOIN departments d
ON e.department_id = d.department_id
UNION ALL
SELECT employee_id,department_name
FROM employees e RIGHT JOIN departments d
ON e.department_id = d.department_id
WHERE e.department_id IS NULL;

方式2:左中图 UNION ALL 右上图

SELECT employee_id,department_name
FROM employees e LEFT JOIN departments d
ON e.department_id = d.department_id
WHERE d.department_id IS NULL
UNION ALL
SELECT employee_id,department_name
FROM employees e RIGHT JOIN departments d
ON e.department_id = d.department_id;

右下图:左中图 UNION ALL 右中图

SELECT employee_id,department_name
FROM employees e LEFT JOIN departments d
ON e.department_id = d.department_id
WHERE d.department_id IS NULL
UNION ALL
SELECT employee_id,department_name
FROM employees e RIGHT JOIN departments d
ON e.department_id = d.department_id
WHERE e.department_id IS NULL;

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 多表查询的分类/* 角度1:等值连接 vs 非等值连接 角度2:自连接 vs 非自连接 角度3:内连接 ...
    菩提树下参悟阅读 375评论 0 2
  • 进阶7:子查询 /*含义:出现在其他语句中的select语句,称为子查询或内查询外部的查询语句,称为主查询或外查询...
    雪上霜阅读 324评论 0 0
  • 进阶7:子查询 /*含义:出现在其他语句中的select语句,称为子查询或内查询外部的查询语句,称为主查询或外查询...
    majorty阅读 3,058评论 0 1
  • 尚硅谷:https://www.bilibili.com/video/BV1xW411u7ax?p=1[https...
    内蒙小猿阅读 344评论 0 0
  • 连接查询 又叫:多表查询、多表连接含义:当查询的子都啊来自多个表时,就会用到连接查询 笛卡尔乘积现象:表1有m行,...
    晓晓桑阅读 494评论 0 0