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