欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mysql中inner join和left join使用詳解

 更新時間:2023年03月30日 10:38:06   作者:Nuyoahll-_-ll  
本文主要介紹了mysql中inner join和left join使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

區(qū)別

返回不同
1、inner join只返回兩個表中聯(lián)結(jié)字段相等的行
2、left join的數(shù)量小于等于左表和右表中的記錄數(shù)量。

數(shù)量不同
1、inner join返回包括左表中的所有記錄和右表中聯(lián)結(jié)字段相等的記錄。
2、left join的數(shù)量以左表中的記錄數(shù)量相同

記錄屬性不同
1、inner join不足的記錄屬性會被直接舍棄
2、left join不足的記錄屬性用NULL填充

inner join 場景

設(shè)計兩張表:

  • channel 頻道表:有頻道id、頻道name等
  • module 模塊表:模塊id、模塊name、channe_id。

頁面展示頻道時,可能會有新增了一個頻道但是沒有模塊,此時不能用inner join 不然新增的模塊查詢不出來,所以用left join

 select channel.* from  channel left join modules on channel.id = modules.channel_id
 where page_id=1
 group by channel.id order by channel.new_sort asc , channel.id desc

1、page_id是指在哪個頁面類型下,在頻道channel表中定義,用來區(qū)分哪個頁面類型
2、一個頻道id可能有多個模塊去關(guān)聯(lián),所以需要按照頻道id進行分組
3、new_sort可以設(shè)置頻道的排序顯示,另外排序相同應(yīng)該讓頻道最先創(chuàng)建的顯示在前面。

以下這種情況新創(chuàng)建的頻道就不會顯示,并且沒有模塊的頻道也不會顯示。

select channel.*  from channel inner join modules on channel.id=modules.channel_id
where page_id=1 group by channel.id order by channel.new_sort asc , channel.id desc 

最后:有點疑問,頻道只做顯示頻道相關(guān)信息,并沒有用到關(guān)聯(lián)的模塊信息,所以感覺這樣也能滿足需求了。后續(xù)發(fā)現(xiàn)問題再更吧~

 select channel.* from  channel
 where page_id=1 order by channel.new_sort asc , channel.id desc

額~補充問題,上面遺留的問題是頁面上需要查詢module的id所以才關(guān)聯(lián)了。

之前還遇到了個inner join 的場景,后續(xù)再補~

inner join 場景

新加一個策略表policy_lib 、然后再創(chuàng)建一個中間表channel_policy記錄 channel頻道和policy_lib策略表關(guān)聯(lián)。
那么顯然sql這樣寫

select policy_lib.id,channel_policy.policy_id,channel_policy.channel_id,channel.id  from policy_lib inner join channel_policy on channel_policy.policy_id=policy_lib.id 
inner join channel on channel.id=channel_policy.channel_id

使用inner join 顯然結(jié)果查詢出來不會有空的情況,如果用left join 萬一表中有臟數(shù)據(jù),左邊有數(shù)據(jù)右邊時空的,在處理的時候還需要考慮是否有空的情況顯然不合理。

到此這篇關(guān)于mysql中inner join和left join使用詳解的文章就介紹到這了,更多相關(guān)mysql中inner join和left join內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mysql的json處理實現(xiàn)

    mysql的json處理實現(xiàn)

    本文主要介紹了mysql的json處理實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-08-08
  • MySQL select查詢之LIKE與通配符用法

    MySQL select查詢之LIKE與通配符用法

    這篇文章主要介紹了MySQL select查詢之LIKE與通配符用法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • 阿里云Centos 7.5安裝Mysql的教程

    阿里云Centos 7.5安裝Mysql的教程

    這篇文章主要介紹了阿里云Centos 7.5安裝Mysql的教程,需要的朋友可以參考下
    2017-07-07
  • MySQL回表的性能傷害程度有多大

    MySQL回表的性能傷害程度有多大

    這篇文章主要介紹了MySQL回表的性能傷害程度有多大?下面我們就帶著疑問進入下面文章了解詳細內(nèi)容,需要的小伙伴可以參考一下,希望對你的學習有所幫助
    2022-02-02
  • MYSQL根據(jù)分組獲取組內(nèi)多條數(shù)據(jù)中符合條件的一條(實例詳解)

    MYSQL根據(jù)分組獲取組內(nèi)多條數(shù)據(jù)中符合條件的一條(實例詳解)

    這篇文章主要介紹了MYSQL根據(jù)分組獲取組內(nèi)多條數(shù)據(jù)中符合條件的一條,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-06-06
  • Mysql提升大數(shù)據(jù)表拷貝效率的解決方案

    Mysql提升大數(shù)據(jù)表拷貝效率的解決方案

    這篇文章主要給大家介紹了關(guān)于Mysql提升大數(shù)據(jù)表拷貝效率的解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-09-09
  • mysql tmp_table_size和max_heap_table_size大小配置

    mysql tmp_table_size和max_heap_table_size大小配置

    這篇文章主要介紹了mysql tmp_table_size和max_heap_table_size大小配置,需要的朋友可以參考下
    2016-05-05
  • 為mysql數(shù)據(jù)庫添加添加事務(wù)處理的方法

    為mysql數(shù)據(jù)庫添加添加事務(wù)處理的方法

    開始首先說明一下,mysql數(shù)據(jù)庫默認的數(shù)據(jù)庫引擎是MyISAM,是不支持事務(wù)的,單數(shù)如果你添加了數(shù)據(jù)執(zhí)行語句是不會出錯的,單數(shù)不管用,即便是回滾事務(wù),記錄也是插入進去了,所有首先我們要做的第一步是更改數(shù)據(jù)庫引擎
    2011-07-07
  • Linux下安裝mysql-8.0.20的教程詳解

    Linux下安裝mysql-8.0.20的教程詳解

    這篇文章主要介紹了Linux下安裝mysql8.0.20的教程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • 一文說透什么是MySQL的預編譯

    一文說透什么是MySQL的預編譯

    這篇文章主要介紹了一文說透什么是MySQL的預編譯,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11

最新評論