程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> mysql中LEFT JOIN查詢兩個表的差集

mysql中LEFT JOIN查詢兩個表的差集

編輯:關於MYSQL數據庫

       今天在做一個微信牆的抽獎程序的時候遇到了一個問題,我需要查詢量表的差集,業務情形是這樣的

      一個表用來保存抽獎用戶的(www.111cn.net 一個人可能會有多條數據),而另一張表保存的是中獎的用戶,我需要報麼有中獎的所用用戶查找出來,剛開始用的是where進行多表關聯查詢,但是最終發現當中獎表中麼有數據的時候是查找不到任何信息的,改用LEFT JOIN 用這個就很簡單了,

     代碼如下  

    DESC SELECT * 
    FROM  `enet_wall_list` AS l
    LEFT JOIN  `enet_wall_lottery` AS lottery ON l.openid = lottery.openid
    WHERE l.weid =63
    AND lottery.id IS NULL 
    GROUP BY l.openid

      左連接查詢,查找相等的,如果沒有的lottery表中會用NULL字段直接判斷下就可以過濾一下數據了,然後得到需要的數據即可 。

      例子

      環境:A/B 兩表為關聯表。關聯字段,pid。A表為主表,數據多於B表。現查詢A表中存在,B表中不存在的數據

     代碼如下  

    SELECT * FROM `A` a LEFT JOIN  `B`  b  ON a.`pid`=b.`pid` where b.`pid` IS NULL and LENGTH(a.`pid`)<10

      講述下以上SQL所用到的知識:

      1、LEFT JOIN ON : left join 左邊的表為主表,主表中的每條數據都會顯示。右邊的表中如果沒有數據,則表示為null

      2、LENGTH 計算字符串的長度

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved