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条件的位置作用及关系


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM