1. select * from a left join b on a.id = b.id and a.dt=20181115;
2. select * from a left join b on a.id = b.id and b.dt=20181115;
3. select * from a join b on a.id = b.id and a.dt=20181115;
4. select * from a left join b on a.id = b.id where a.dt=20181115;
sql1: 如果是left join 在on上寫主表a的條件不會生效,全表掃描。
sql2: 如果是left join 在on上寫副表b的條件會生效,但是語義與寫到where 條件不同
sql3: 如果是inner join 在on上寫主表a、副表b的條件都會生效
sql4: 建議這么寫,大家寫sql大部分的語義都是先過濾數據然后再join ,所以在不了解 join on + 條件的情況下,條件盡量別寫道on 后,直接寫到where厚就ok了。
