- on是在生成臨時表的時候使用的條件,不管on的條件是否起到作用,都會返回左表的行
- where則是在生成臨時表之后使用的條件,此時已經不管是否使用了left join了,只要條件不為真的行,全部過濾掉。
=> 所以 where 要寫在 on 之后
例:
SELECT t.*, r.name AS remunerationName, b.total_balance AS totalBalance
FROM teacher t LEFT JOIN remuneration r ON t.remuneration_id=r.id
LEFT JOIN balance b ON t.id=b.teacher_id
WHERE 1=1 ORDER BY `date` DESC LIMIT 1
參考:
mysql inner join where,MYSQL left join中 on條件和where條件的位置作用及關系