https://segmentfault.com/q/1010000006812626sql
http://www.xumenger.com/sql-join-20160630/segmentfault
on後面關聯的條件若是是1對1的數量就不變,若是是1對多的數量就會增長
一般的作法是,先把多的那個表聚合,或者取sum或取分組中的最大最小值 再或者分組後將字符拼接,如id a,b,c
左右表的主鍵外鍵對應的問題 ,出現了一對多。code
left顯示的記錄數是跟主表有關係,也就是說主表有幾條,若是不加條件限制,結果跟主表條數一致get
舉個例子:table
A表: B表: id | name id | email 1 | tom 1 | anything@126.com 2 | mary 1 | anything@163.com 1 | anything@gmail.com
SELECT a.* FROM talbe_a AS a LEFT JOIN table_b AS b ON a.id = b.id
如上,最終結果會有多少條數據呢?email