登录
首页 >  数据库 >  MySQL

MySQL 查询条件放置 on 和 where 的区别

来源:SegmentFault

时间:2023-01-22 17:52:31 136浏览 收藏

在IT行业这个发展更新速度很快的行业,只有不停止的学习,才不会被行业所淘汰。如果你是数据库学习者,那么本文《MySQL 查询条件放置 on 和 where 的区别》就很适合你!本篇内容主要包括MySQL 查询条件放置 on 和 where 的区别,希望对大家的知识积累有所帮助,助力实战开发!

导语

今天在写 SQL 的时候,遇到一个问题。需求是这样的,查询数据,按照评分倒序、近一周访问量倒序,这样进行排序。问题是常规的写法,将

SELECT DISTINCT
    
FROM
     
JOIN  ON 
WHERE
    
GROUP BY
    
HAVING
    
ORDER BY
    
LIMIT 

下面是 SQL 的执行顺序

FROM 
ON  JOIN 
WHERE 
GROUP BY 
HAVING 
SELECT 
DISTINCT 
ORDER BY 
LIMIT 

LEFT JOIN
的作用

结果集的不同,不仅与 SQL 的优先级有关,还和

LEFT JOIN
有关

使用left join时on后面的条件只对右表有效

  • on是在生成临时表的时候使用的条件,不管on的条件是否起到作用,都会返回左表 (table_name1) 的行。
  • where则是在生成临时表之后使用的条件,此时已经不管是否使用了left join了,只要条件不为真的行,全部过滤掉。

以上是从两篇资料中摘抄的,可以很好的概括(原文链接在下方,其中都有示例)。


参考资料:步步深入:MySQL架构总览->查询执行流程->SQL解析顺序MySQL left join操作中 on与where放置条件的区别SQL中过滤条件放在on和where中的区别

理论要掌握,实操不能落!以上关于《MySQL 查询条件放置 on 和 where 的区别》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>