leftjoin结果条数会不会⼤于左表⾏数?会⼤于
今天电话⾯试⼀道题,⾯试官问我
left join结果条数会不会⼤于左表⾏数?
你都这么问了,我怎么能随便回答:不会吧不会吧不会吧
那举个例⼦
多表left join两个表test和test2
⼀般情况下,使⽤left join,join ID等⼀对⼀的字段,结果条数等于左表⾏数
但如果on 后⾯的条件对应字段存在⼀对多的情况,就不⼀定了
⽐如这⾥我们给age加多个相同的值18岁,
通过age关联两个表
就会出现重复数据,且导致总条数不等于左表,那么怎么去除重复呢,
很简单,就是把右边按照关联字段去重,
可以选择distinct,也可以groupby