1、内连接
SELECT <select...list>
FROM TableA A
INNER JOIN TableB B
ON A.Key=B.Key;
2、左外连接(包括公共部分)
SELECT <select...list>
FROM TableA A
LEFT JOIN TableB B
ON A.Key=B.Key;
3、右外连接(包括公共部分)
SELECT <select...list>
FROM TableA A
RIGHT JOIN TableB B
ON A.Key=B.Key;
4、左外连接(不包括公共部分)
SELECT <select...list>
FROM TableA A
LEFT JOIN TableB B
ON A.Key=B.Key
WHERE B.Key IS NULL;
5、右外连接(不包括公共部分)
SELECT <select...list>
FROM TableA A RIGHT JOIN TableB B
ON A.Key=B.Key
WHERE A.Key IS NULL;
6、全外连接
MySQL版本(不支持FULL OUTER JOIN)
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;
orcale可以简化:
SELECT <select...list>
FROM TableA A
FULL OUTER JOIN TableB B
ON A.Key=B.Key
7、交叉外连接
MySQL:
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;
orcale:
SELECT <select...list>
FROM TableA A
FULL OUTER JOIN TableB B
ON A.Key=B.Key
WHERE A.Key IS NULL OR B.Key IS NULL;