tb_dept表:
SQL中的表联查 7种JOIN连接
tb_emp表:
SQL中的表联查 7种JOIN连接

一、内链接:取tb_emp表和tb_dept表的共有部分

SQL中的表联查 7种JOIN连接
sql语句:

SELECT a.,b. FROM tb_emp a INNER JOIN tb_dept b ON a.dept_id = b.id;

执行结果:
SQL中的表联查 7种JOIN连接

二、左链接:取tb_emp表和tb_dept表的共有部分和tb_emp表的独有部分

SQL中的表联查 7种JOIN连接
sql语句:

SELECT a.,b. FROM tb_emp a LEFT JOIN tb_dept b ON a.dept_id = b.id;

执行结果:
SQL中的表联查 7种JOIN连接

三、右链接:取tb_emp表和tb_dept表的共有部分和tb_dept表的独有部分

SQL中的表联查 7种JOIN连接
sql语句:

SELECT a.,b. FROM tb_emp a RIGHT JOIN tb_dept b ON a.dept_id = b.id;

执行结果:
SQL中的表联查 7种JOIN连接

四、左链接:取tb_emp表独有部分

SQL中的表联查 7种JOIN连接sql语句:

SELECT a.,b. FROM tb_emp a LEFT JOIN tb_dept b ON a.dept_id = b.id WHERE b.id IS NULL;

执行结果:
SQL中的表联查 7种JOIN连接

五、左链接:取tb_dept表独有部分

SQL中的表联查 7种JOIN连接
sql语句:

SELECT a.,b. FROM tb_emp a RIGHT JOIN tb_dept b ON a.dept_id = b.id WHERE a.dept_id IS NULL;

执行结果:
SQL中的表联查 7种JOIN连接

六、全链接:取tb_emp表和tb_dept表全部元素,且去除重复

SQL中的表联查 7种JOIN连接
sql语句:

SELECT a.,b. FROM tb_emp a LEFT JOIN tb_dept b ON a.dept_id = b.id
UNION
SELECT a.,b. FROM tb_emp a RIGHT JOIN tb_dept b ON a.dept_id = b.id;

执行结果:
SQL中的表联查 7种JOIN连接

如果用 UNION ALL,则会不去重,将2张表合并

sql语句:

SELECT a.,b. FROM tb_emp a LEFT JOIN tb_dept b ON a.dept_id = b.id
UNION ALL
SELECT a.,b. FROM tb_emp a RIGHT JOIN tb_dept b ON a.dept_id = b.id;

执行结果:
SQL中的表联查 7种JOIN连接

七、全链接:取tb_emp表独有部分和tb_dept表独有部分的并集

SQL中的表联查 7种JOIN连接
sql语句:

SELECT a.,b. FROM tb_emp a LEFT JOIN tb_dept b ON a.dept_id = b.id WHERE b.id IS NULL
UNION
SELECT a.,b. FROM tb_emp a RIGHT JOIN tb_dept b ON a.dept_id = b.id WHERE a.dept_id IS NULL;

执行结果:
SQL中的表联查 7种JOIN连接

相关文章:

  • 2021-10-12
  • 2022-01-17
  • 2021-09-17
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-01-01
  • 2021-06-15
猜你喜欢
  • 2021-08-18
  • 2022-01-22
  • 2021-10-15
  • 2021-07-07
  • 2021-11-19
  • 2022-12-23
相关资源
相似解决方案