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;