婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > MySQL查詢條件中放置on和where的區別分析

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

熱門標簽:昆明電信400電話辦理 南昌高頻外呼系統哪家公司做的好 淄博400電話申請 百度地圖標注后不顯示 電銷機器人各個細節介紹 溫州瑞安400電話怎么申請 俄國地圖標注app 電話機器人市場趨勢 電銷機器人 行業

導語

今天在寫 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了,只要條件不為真的行,全部過濾掉。

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

參考資料:

  • 步步深入:MySQL架構總覽->查詢執行流程->SQL解析順序
  • MySQL left join操作中 on與where放置條件的區別
  • SQL中過濾條件放在on和where中的區別。

總結

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

您可能感興趣的文章:
  • MySQL left join操作中on和where放置條件的區別介紹
  • mysql中left join設置條件在on與where時的用法區別分析
  • Mysql中where與on的區別及何時使用詳析

標簽:安徽 嘉峪關 葫蘆島 洛陽 拉薩 ???/a> 甘南 吐魯番

巨人網絡通訊聲明:本文標題《MySQL查詢條件中放置on和where的區別分析》,本文關鍵詞  MySQL,查詢,條件,中,放置,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MySQL查詢條件中放置on和where的區別分析》相關的同類信息!
  • 本頁收集關于MySQL查詢條件中放置on和where的區別分析的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 海安县| 大邑县| 克拉玛依市| 北海市| 泸州市| 宕昌县| 民乐县| 砚山县| 南昌市| 浦北县| 泗洪县| 清新县| 宿州市| 富锦市| 黄骅市| 芦山县| 泰安市| 通化县| 乐安县| 大城县| 历史| 施甸县| 潼南县| 章丘市| 湖口县| 阳东县| 若尔盖县| 阜平县| 屏边| 清河县| 奇台县| 百色市| 东丰县| 英吉沙县| 陵川县| 砀山县| 平山县| 密山市| 右玉县| 阜城县| 布尔津县|