91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mysql中inner?join和left?join如何使用

發布時間:2023-03-30 11:26:55 來源:億速云 閱讀:118 作者:iii 欄目:開發技術

這篇文章主要介紹“mysql中inner join和left join如何使用”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“mysql中inner join和left join如何使用”文章能幫助大家解決問題。

區別

返回不同
1、inner join只返回兩個表中聯結字段相等的行
2、left join的數量小于等于左表和右表中的記錄數量。

數量不同
1、inner join返回包括左表中的所有記錄和右表中聯結字段相等的記錄。
2、left join的數量以左表中的記錄數量相同

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

inner join 場景

設計兩張表:

  • 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表中定義,用來區分哪個頁面類型
2、一個頻道id可能有多個模塊去關聯,所以需要按照頻道id進行分組
3、new_sort可以設置頻道的排序顯示,另外排序相同應該讓頻道最先創建的顯示在前面。

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

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

最后:有點疑問,頻道只做顯示頻道相關信息,并沒有用到關聯的模塊信息,所以感覺這樣也能滿足需求了。后續發現問題再更吧

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

額~補充問題,上面遺留的問題是頁面上需要查詢module的id所以才關聯了。

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

inner join 場景

新加一個策略表policy_lib 、然后再創建一個中間表channel_policy記錄 channel頻道和policy_lib策略表關聯。
那么顯然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 顯然結果查詢出來不會有空的情況,如果用left join 萬一表中有臟數據,左邊有數據右邊時空的,在處理的時候還需要考慮是否有空的情況顯然不合理。

關于“mysql中inner join和left join如何使用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南京市| 望谟县| 高台县| 工布江达县| 长寿区| 兴安盟| 镇赉县| 井陉县| 中西区| 西丰县| 云阳县| 顺昌县| 澄城县| 古田县| 渭南市| 阿荣旗| 绵竹市| 察雅县| 响水县| 新化县| 宕昌县| 东乌珠穆沁旗| 永宁县| 松阳县| 壤塘县| 乌海市| 瑞安市| 海阳市| 内乡县| 枝江市| 兖州市| 卢氏县| 江西省| 镇巴县| 梁山县| 阿荣旗| 冷水江市| 海伦市| 揭东县| 武夷山市| 探索|