MySQL中left join...on,where,order by和limit的位置作用及关系

  1. on是在生成临时表的时候使用的条件,不管on的条件是否起到作用,都会返回左表的行
  2. 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条件的位置作用及关系

posted @ 2021-09-30 10:16  张三丰学Java  阅读(1536)  评论(0编辑  收藏  举报