婷婷综合国产,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的區別分析的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 仁布县| 荥阳市| 抚顺县| 昆明市| 吕梁市| 边坝县| 上饶市| 华安县| 咸宁市| 双鸭山市| 奉贤区| 石台县| 芦溪县| 清远市| 花莲县| 望江县| 漠河县| 镇雄县| 兴化市| 运城市| 保靖县| 肇庆市| 民权县| 泽州县| 马公市| 钟山县| 广东省| 平遥县| 深水埗区| 洪雅县| 黔西县| 凯里市| 永城市| 平定县| 新余市| 乌拉特中旗| 彭泽县| 玛曲县| 平江县| 兴山县| 会泽县|