国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL查詢條件中放置on和where的區別分析

2024-07-25 19:09:32
字體:
來源:轉載
供稿:網友

導語

今天在寫 SQL 的時候,遇到一個問題。需求是這樣的,查詢數據,按照評分倒序、近一周訪問量倒序,這樣進行排序。問題是常規的寫法,將 day >= xxx 條件放到 where 中, 如果某些數據近一周沒有訪問量,那么這條數據就查不出來。解決辦法呢,就是將條件放到 LEFT JOIN 中。

MySQL 語句執行順序

首先先說明一個概念,MySQL 語句執行的順序,并不是按照 SQL 語句的順序。下面是示例 SQL

SELECT DISTINCT < select_list >FROM < left_table > < join_type >JOIN < right_table > ON < join_condition >WHERE < where_condition >GROUP BY < group_by_list >HAVING < having_condition >ORDER BY < order_by_condition >LIMIT < limit_number >

下面是 SQL 的執行順序

FROM <left_table>ON <join_condition><join_type> JOIN <right_table>WHERE <where_condition>GROUP BY <group_by_list>HAVING <having_condition>SELECT DISTINCT <select_list>ORDER BY <order_by_condition>LIMIT <limit_number>

LEFT JOIN 的作用

結果集的不同,不僅與 SQL 的優先級有關,還和 LEFT JOIN 有關

使用left join時on后面的條件只對右表有效

  • on是在生成臨時表的時候使用的條件,不管on的條件是否起到作用,都會返回左表 (table_name1) 的行。
  • where則是在生成臨時表之后使用的條件,此時已經不管是否使用了left join了,只要條件不為真的行,全部過濾掉。

以上是從兩篇資料中摘抄的,可以很好的概括(原文鏈接在下方,其中都有示例)。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永定县| 广饶县| 贵德县| 阳曲县| 浙江省| 日喀则市| 陆丰市| 兴城市| 茂名市| 济南市| 渑池县| 隆安县| 乌什县| 玉田县| 收藏| 贞丰县| 龙州县| 余干县| 郓城县| 双桥区| 咸丰县| 包头市| 兰考县| 肃宁县| 白银市| 高阳县| 睢宁县| 丁青县| 安泽县| 伊川县| 岑溪市| 凉城县| 道孚县| 灵宝市| 页游| 衡阳市| 托克逊县| 宣城市| 莱州市| 顺义区| 天祝|