1. 程式人生 > >mysql左右關聯,內關聯

mysql左右關聯,內關聯

兩張表,
user,欄位,user_id,email,name
deal,欄位deal_id,user_id,deal_name
對應關係,user.user_id = deal.user_id,
左關聯:
select u.*,d.* from user as u left join deal as d on d.user_id = u.user_id;
右關聯:
select u.*,d.* from user as u right join deal as d on d.user_id = u.user_id;
內關聯,其中inner可不寫,
select u.* d.* from user as u innerjoin deal as d on d.user_id = u.user_id;

左關聯連寫,加上第三個表,shop,欄位,shop_id,user_id,shop_name
select u.*,d.*,s.* from user as u left join deal as d on d.user_id = u.user_id left join shop as s on s.user_id = u.user_id;
多表多個連寫,同理右關聯和內關聯,內關聯跟普通的自然關聯是一樣的,上面那一句跟下面這句得到的結果是相同的,select u.* d.* from user as u,deal as d where d.user_id = u.user_id;
說說他們的不同之處,
左關聯,以左邊這張表為主表,右邊的為附表,得到的資料對左表不加限制(當然,在沒有限制的條件下,比如沒有where沒有having等),同理右關聯.
內關聯,也就是自然關聯對主表的限制就是附表中存在值,才顯示資料.所以得到的結論是,左關聯適合列表,內關聯適合取值.