一、連接查詢分類:
1.交叉連接(不常用):
返回被連接的兩個表所有數據行的笛卡爾積;
返回到結果集合中的數據行數等於第一個表中符合查詢條件的數據行數乘以第二個表中符合查 詢條件的數據行數。
2.內連接:
inner join 或 join
3.外連接
左外連接:left join 或 left outer join
右外連接:right join 或 right outer join
完全外連接:full join 或 full outer join
二、連接查詢實例:
數據庫中有兩張表,一張人員(T_Person)表、一張卡(T_Card)表
內連接
1.內連接(inner join 或 join)
內連接是等值連接,它使用“=、>、<、<>”等運算符根據每個表共有的列的值匹配兩個表中的行
查詢語句:
select * from T_Person inner join T_Card on T_Person.CardId = T_Card.CardId
查詢結果:
外連接
1.左連接(left join 或 left outer join)
左連接又稱左向外連接,查詢的結果集包括SQL語句中左表的所有行,右表中匹配的行。如果左表的某行在右表中沒有匹配行,則用空值表示
查詢語句:
select * from T_Person left join T_Card on T_Person.CardId = T_Card.CardId
查詢結果:
2.右連接(right join 或 right outer join)
右連接也成右向外連接,查詢的結果集包括SQL語句中右表的所有行,左表中匹配的行。如果右表的某行在左表中沒有匹配的行,則用空值表示
查詢語句:
select * from T_Person right join T_Card on T_Person.CardId = T_Card.CardId
查詢結果:
3.完全外連接(full join 或 full outer join)
完全外連接,查詢的結果集包括SQL語句中左表和右表的所有行。如果某行在另一個表中沒有匹配行時,則用空值表示。
查詢語句:
select * from T_Person full join T_Card on T_Person.CardId = T_Card.CardId
查詢結果: