【mysql知识点整理】--- 7种join查询


1 A,B共有 — 内连接

在这里插入图片描述

SELECT <select...list> FROM TableA A INNER JOIN TableB B ON A.Key=B.Key;

2 全A — 左连接

在这里插入图片描述

SELECT <select...list>FROM TableA A LEFT JOIN TableB B ON A.Key=B.Key;

3 全B — 右连接

在这里插入图片描述

SELECT <select...list>FROM TableA A RIGHT JOIN TableB B ON A.Key=B.Key;

4 A独有

在这里插入图片描述

SELECT <select…list>FROM TableA a LEFT JOIN TableB b ON A.Key=B.Key WHERE B.Key IS null;

5 B独有

在这里插入图片描述

SELECT <select…list>FROM TableA a RIGHT JOIN TableB b ON A.Key=B.Key WHERE A.Key IS null;

6 A独有 + B独有 + AB共有 — 全外连接

在这里插入图片描述
注意: mysql不支持FULL JOIN语法,可以利用union关键字完成上诉查询
union关键字会将两个查询集合进行去重叠加,因此sql可以写成下面的样子:

SELECT <select...list>FROM TableA A LEFT JOIN TableB B ON A.Key=B.Key;
UNION
SELECT <select...list>FROM TableA A RIGHT JOIN TableB B ON A.Key=B.Key;

当然也可以将1、4、5的结果进行UNION操作。


7 A独有 + B独有

在这里插入图片描述

SELECT <select…list>FROM TableA a LEFT JOIN TableB b ON A.Key=B.Key WHERE B.Key IS null;
UNION
SELECT <select…list>FROM TableA a RIGHT JOIN TableB b ON A.Key=B.Key WHERE A.Key IS null;
发布了200 篇原创文章 · 获赞 218 · 访问量 44万+

猜你喜欢

转载自blog.csdn.net/nrsc272420199/article/details/104329762