最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL在右表數(shù)據(jù)不唯一的情況下使用left join的方法

 更新時(shí)間:2016年03月03日 16:22:55   作者:傲雪星楓  
這篇文章主要介紹了MySQL在右表數(shù)據(jù)不唯一的情況下使用left join的方法,針對(duì)右表符合條件表達(dá)式的記錄數(shù)大于1條時(shí)left join所顯示的結(jié)果需求來講,需要的朋友可以參考下

1.left join 基本用法

mysql left join 語句格式
A LEFT JOIN B ON 條件表達(dá)式

left join 是以A表為基礎(chǔ),A表即左表,B表即右表。
左表(A)的記錄會(huì)全部顯示,而右表(B)只會(huì)顯示符合條件表達(dá)式的記錄,如果在右表(B)中沒有符合條件的記錄,則記錄不足的地方為NULL。

例如:news 與 news_category表的結(jié)構(gòu)如下,news表的category_id與news_category表的id是對(duì)應(yīng)關(guān)系。

news 表

201633162112696.png (717×128)

news_category 表

201633162135707.png (136×97)

顯示news表記錄,并顯示news的category名稱,查詢語句如下

select a.id,a.title,b.name as category_name,a.content,a.addtime,a.lastmodify  
from news as a left join news_category as b  
on a.category_id = b.id; 

查詢結(jié)果如下:

201633162200297.png (703×124)

因 news_category 表沒有id=4的記錄,因此news 表中category_id=4的記錄的category_name=NULL

使用left join, A表與B表所顯示的記錄數(shù)為 1:1 或 1:0,A表的所有記錄都會(huì)顯示,B表只顯示符合條件的記錄。

2.left join 右表數(shù)據(jù)不唯一解決方法

但如果B表符合條件的記錄數(shù)大于1條,就會(huì)出現(xiàn)1:n的情況,這樣left join后的結(jié)果,記錄數(shù)會(huì)多于A表的記錄數(shù)。

例如:member與member_login_log表的結(jié)構(gòu)如下,member記錄會(huì)員信息,member_login_log記錄會(huì)員每日的登入記錄。member表的id與member_login_log表的uid是對(duì)應(yīng)關(guān)系。

member 表

201633162221215.png (128×70)

member_login_log 表

201633162239610.png (209×144)

查詢member用戶的資料及最后登入日期:
如果直接使用left join

select a.id, a.username, b.logindate 
from member as a  
left join member_login_log as b on a.id = b.uid; 

因member_login_log符合條件的記錄比member表多(a.id = b.uid),所以最后得出的記錄為:

201633162255876.png (260×141)

但這并不是我們要的結(jié)果,因此這種情況需要保證B表的符合條件的記錄是空或唯一,我們可以使用group by來實(shí)現(xiàn)。

select a.id, a.username, b.logindate 
from member as a  
left join (select uid, max(logindate) as logindate from member_login_log group by uid) as b 
on a.id = b.uid; 

201633162313453.png (233×91)

總結(jié):使用left join的兩個(gè)表,最好是1:1 或 1:0的關(guān)系,這樣可以保證A表的記錄全部顯示,B表顯示符合條件的記錄。
如果B表符合條件的記錄不唯一,就需要檢查表設(shè)計(jì)是否合理了。

相關(guān)文章

  • MySQL安裝出現(xiàn)starting the server報(bào)錯(cuò)的解決方案

    MySQL安裝出現(xiàn)starting the server報(bào)錯(cuò)的解決方案

    如果電腦是第一次安裝MySQL,一般不會(huì)出現(xiàn)這樣的報(bào)錯(cuò),如下圖所示,本文主要介紹了MySQL安裝出現(xiàn)starting the server報(bào)錯(cuò)的解決方案,感興趣的可以了解一下
    2024-07-07
  • MySQL主從復(fù)制之半同步semi-sync?replication

    MySQL主從復(fù)制之半同步semi-sync?replication

    這篇文章主要介紹了MySQL主從復(fù)制之半同步semi-sync?replication,半同步相對(duì)于異步復(fù)制而言,提高了數(shù)據(jù)的安全性,同時(shí)也造成了一定程度的延遲,這個(gè)延遲最少是一個(gè)TCP往返的時(shí)間。所以,半同步復(fù)制最好在低延時(shí)的網(wǎng)絡(luò)中使用,下文詳細(xì)內(nèi)容,需要的小伙伴可以參考一下
    2022-02-02
  • CentOS系統(tǒng)下如何設(shè)置mysql每天自動(dòng)備份

    CentOS系統(tǒng)下如何設(shè)置mysql每天自動(dòng)備份

    備份是容災(zāi)的基礎(chǔ),是指為防止系統(tǒng)出現(xiàn)操作失誤或系統(tǒng)故障導(dǎo)致數(shù)據(jù)丟失,而將全部或部分?jǐn)?shù)據(jù)集合從應(yīng)用主機(jī)的硬盤或陣列復(fù)制到其它的存儲(chǔ)介質(zhì)的過程。本文將詳細(xì)介紹在CentOS系統(tǒng)下如何設(shè)置mysql每天自動(dòng)備份,有需要的朋友們下面來一起看看吧。
    2016-10-10
  • Mysql之索引的數(shù)據(jù)結(jié)構(gòu)詳解

    Mysql之索引的數(shù)據(jù)結(jié)構(gòu)詳解

    索引是存儲(chǔ)引擎用于快速找到數(shù)據(jù)記錄的一種數(shù)據(jù)結(jié)構(gòu),類似于教科書的目錄部分,在MySQL中,索引可以加速數(shù)據(jù)查找,減少磁盤I/O的次數(shù),提高查詢速率,但是,創(chuàng)建和維護(hù)索引需要耗費(fèi)時(shí)間,并且索引需要占磁盤空間,在InnoDB中,索引的實(shí)現(xiàn)基于B+樹結(jié)構(gòu)
    2024-12-12
  • Navicat工具中設(shè)置MySQL允許外部訪問

    Navicat工具中設(shè)置MySQL允許外部訪問

    默認(rèn)情況下MySQL只允許本地登錄,即只能在安裝MySQL環(huán)境所在的主機(jī)下訪問,這篇文章主要給大家介紹了關(guān)于Navicat工具中設(shè)置MySQL允許外部訪問的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-04-04
  • MySQL?配置主從復(fù)制實(shí)踐分享

    MySQL?配置主從復(fù)制實(shí)踐分享

    這篇文章主要介紹了MySQL?配置主從復(fù)制實(shí)踐分享,通過檢測(cè)通信展開詳情,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-07-07
  • mysql刪除無用用戶的方法實(shí)現(xiàn)

    mysql刪除無用用戶的方法實(shí)現(xiàn)

    本文主要介紹了mysql刪除無用用戶的方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-03-03
  • mysql5.7.19 解壓版安裝教程詳解(附送純凈破解中文版SQLYog)

    mysql5.7.19 解壓版安裝教程詳解(附送純凈破解中文版SQLYog)

    Mysql5.7.19版本是今年新推出的版本,最近幾個(gè)版本的MySQL都不再是安裝版,都是解壓版了,大家在使用過程中遇到很多問題,下面小編給大家?guī)砹薓ySQL5.7.19 解壓版安裝教程詳解,感興趣的朋友一起看看吧
    2017-10-10
  • 幾個(gè)比較重要的MySQL變量

    幾個(gè)比較重要的MySQL變量

    這篇文章主要介紹了幾個(gè)比較重要的MySQL變量,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-10-10
  • MySQL索引失效原理

    MySQL索引失效原理

    索引可以加快查找速度是因?yàn)?,在每一層的兄弟?jié)點(diǎn)之間,索引是有序的,因此可以通過二分法快速定位到相應(yīng)位置。如果一些操作破壞了索引排列的有序性或者不能利用索引的有序性,這個(gè)索引自然就失效了,下文更詳細(xì)說明,需要的朋友可以參考一下
    2021-12-12

最新評(píng)論

峨眉山市| 瓦房店市| 抚宁县| 佛学| 防城港市| 乌鲁木齐市| 巴南区| 桑日县| 金昌市| 九龙城区| 股票| 舒兰市| 称多县| 中阳县| 乌恰县| 娄底市| 信丰县| 高阳县| 玛纳斯县| 长子县| 竹山县| 温泉县| 张北县| 临武县| 都昌县| 旺苍县| 麻城市| 邓州市| 都匀市| 黄石市| 佳木斯市| 舞钢市| 江北区| 安仁县| 锡林浩特市| 义乌市| 黑山县| 宿松县| 五华县| 仙居县| 沙河市|