下面展示了 LEFT JOIN、RIGHT JOIN、INNER JOIN、OUTER JOIN 相关的 7 种用法。
具体分解如下:
1.INNER JOIN(内连接)
SELECT <select_list> FROM Table_A A
INNER JOIN Table_B B
ON A.Key = B.Key
等值连接,只返回两个表中连接字段相等的值
2.LEFT JOIN(左连接)
SELECT <select_list> FROM Table_A A
LEFT JOIN Table_B B
ON A.Key = B.Key
返回包括左表中的所有的记录和右表连接字段相等的记录
因为left join是以左表为主表,所以只要左表有数据,不管右表有没有数据(如果右表没有数据则为null),查询结果都会存在
3.RIGHT JOIN(右连接)
SELECT <select_list> FROM Table_A A
RIGHT JOIN Table_B B
ON A.Key = B.Key
返回包括右表中的所有的记录和左表连接字段相等的记录
4.OUTER JOIN(外连接)
SELECT <select_list> FROM Table_A A
FULL OUTER JOIN Table_B B
ON A.Key = B.Key
返回坐标和右表所有的数据,类似于取并集
5.LEFT JOIN EXCLUDING INNER JOIN(左连接-内连接)
SELECT <select_list> FROM Table_A A
LEFT JOIN Table_B B
ON A.Key = B.Key
WHERE B.Key IS NULL
6.RIGHT JOIN EXCLUDING INNER JOIN(右连接-内连接)
SELECT <select_list> FROM Table_A A
RIGHT JOIN Table_B B
ON A.Key = B.Key
WHERE A.Key IS NULL
7.OUTER JOIN EXCLUDING INNER JOIN(外连接-内连接)
SELECT <select_list> FROM Table_A A
FULL OUTER JOIN Table_B B
ON A.Key = B.Key
WHERE A.Key IS NULL OR B.Key IS NULL