SQL 兩個表組合查詢

海乐学习發表於2024-03-06

幾種常用的方法:

1. 內連線 (INNER JOIN)
內連線返回兩個表中都有匹配的行。

SELECT A.*, B.*
FROM 表A AS A
INNER JOIN 表B AS B ON A.某欄位 = B.某欄位 

2. 左連線 (LEFT JOIN)
左連線返回左表(表A)的所有行,即使右表(表B)中沒有匹配的行。

SELECT A.*, B.*
FROM 表A AS A
LEFT JOIN 表B AS B ON A.某欄位 = B.某欄位 

3. 右連線 (RIGHT JOIN)
右連線返回右表(表B)的所有行,即使左表(表A)中沒有匹配的行。

SELECT A.*, B.*
FROM 表A AS A
RIGHT JOIN 表B AS B ON A.某欄位 = B.某欄位

4. 全連線 (FULL JOIN)
全連線返回兩個表中至少有一個匹配的行。在MySQL中,可以用UNION來實現。

SELECT A.*, B.*
FROM 表A AS A
LEFT JOIN 表B AS B ON A.某欄位 = B.某欄位
UNION
SELECT A.*, B.*
FROM 表A AS A
RIGHT JOIN 表B AS B ON A.某欄位 = B.某欄位 

5. 交叉連線 (CROSS JOIN)
交叉連線返回兩個表的笛卡爾積。

SELECT A.*, B.*
FROM 表A AS A
CROSS JOIN 表B AS B 

相關文章