SQL的四種連接-左外連接、右外連接、內連接、全連接
內連接inner join...on... / join...on...
展現出來的是共同的數據
select m.Province,S.Name from member m inner join ShippingArea s on m.Province=s.ShippingAreaID;
相當于:select m.Province,S.Name from member m , ShippingArea s where m.Province=s.ShippingAreaID;
左連接(左外連接) left join...on...
將返回右表的所有行。如果左表的某行在右表中沒有匹配行,則將為右表返回空值左連接:
select m.Province,S.Name from member m left join ShippingArea s on m.Province=s.ShippingAreaID;
以左表為主表,右表沒數據為null
右連接(右外連接)right join...on...
將返回右表的所有行。如果右表的某行在左表中沒有匹配行,則將為左表返回空值;
以右表為主表,左表中沒數據的為null
select m.Province,S.Name from member m right join ShippingArea s on m.Province=s.ShippingAreaID;
全外連接FULL JOIN ...on...
完整外部聯接返回左表和右表中的所有行。當某行在另一個表中沒有匹配行時,則另一個表的選擇列表列包含空值。如果表之間有匹配行,則整個結果集行包含基表的數據值。
select m.Province,S.Name from member m full join ShippingArea s on m.Province=s.ShippingAreaID;