麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > 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教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 精品视频一区二区三区四区 | 黄色av电影在线播放 | 日韩一级片免费 | 国产精品av久久久久久久久久 | 一边吃奶一边摸下娇喘 | 91亚洲免费视频 | 久久最新免费视频 | 久久国产精品免费视频 | 老司机免费福利午夜入口ae58 | xfplay噜噜av | 女18一级大黄毛片免费女人 | 狼伊千合综网中文 | 婷婷一区二区三区四区 | 成年人在线视频免费 | 欧美韩国日本在线 | 久久久久久久久久美女 | 日韩黄站| 91精品国产91久久久久久蜜臀 | 福利在线小视频 | 亚洲最新黄色网址 | 中文字幕在线免费播放 | 国产精品久久久久久久久久久久午夜 | 黄色大片在线免费观看 | 久久久经典视频 | 欧美日韩亚洲在线 | 免费日本一区二区 | 午夜视频免费在线观看 | 久久久久久久久久久亚洲 | 色柚视频网站ww色 | 久久99国产精品久久99 | 女教师~淫辱の动漫在线 | 成人午夜免费福利 | 成人毛片av在线 | 久久精品视频一区二区 | 国产免费一区二区三区在线能观看 | 成人毛片免费视频 | 毛片视频在线免费观看 | av在线免费不卡 | 国产精品久久久久久久久久尿 | 久久99国产伦子精品免费 | 国产一区不卡 |