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;
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;