概述:INNER JOIN、LEFT JOIN、LIGHT JOIN、FULL JOIN. 一、INNER JOIN INNER JOIN 關鍵字在表中存在至少一個匹配時返回行。 語法: 此查詢會返回兩表中存在匹配項的值。 內連接: 現有一學生成績表:(Achievement) 現需查出 “語文成績 ...
概述:INNER JOIN、LEFT JOIN、LIGHT JOIN、FULL JOIN.
一、INNER JOIN
INNER JOIN 關鍵字在表中存在至少一個匹配時返回行。
語法:
select * from Table_1 a inner join Table_2 b on a.ID=b.id select * from Table_1 a,Table_2 b where a.ID=b.id
此查詢會返回兩表中存在匹配項的值。
內連接:
現有一學生成績表:(Achievement)
現需查出 “語文成績>=數學成績” 的學生姓名
首先使用INNER JOIN 連接自己:
select * from Achievement a inner join Achievement b on a.ID=b.ID
結果出現內連接後兩表合成的新表,左邊為A表,右邊為B表,出現可比較性:
繼續增加查詢條件:
--查詢 “語文成績>=數學成績”的學生姓名 select * from Achievement a inner join Achievement b on a.ID=b.ID where a.Chengji >= b.Chengji and a.Kecheng_Name='語文' and b.Kecheng_Name='數學'
最終,查詢出結果:
內連接多用於單表內的比較或篩選查詢。
二、LEFT JOIN
LEFT JOIN 關鍵字從左表(table1)返回所有的行,即使右表(table2)中沒有匹配。如果右表中沒有匹配,則結果為 NULL。
語法同上,連接關係為:
三、RIGHT JOIN
RIGHT JOIN 關鍵字從右表(table2)返回所有的行,即使左表(table1)中沒有匹配。如果左表中沒有匹配,則結果為 NULL。
語法同上,連接關係為:
四、FULL JOIN
FULL JOIN 關鍵字只要左表(table1)和右表(table2)其中一個表中存在匹配,則返回行.
FULL JOIN 關鍵字結合了 LEFT JOIN 和 RIGHT JOIN 的結果。
語法同上,連接關係為: