2017-01-01 58 views
0

我有這個鏈接兩個表的MySQL查詢。我想加入主題,從哪裏得到不存在的數據從另一個表。我想從兩個表中得到不存在的數據

這個在這裏得到註冊日期爲用戶

SELECT 
t2.name ,phone 
FROM 
    (SELECT name,tid,date_d,class_time AS 'absent' 
     FROM absent where date_d = '2016-12-04') t1 
JOIN 
    (SELECT name, id,phone AS 'phone' 
     FROM users ) t2 
    ON t1.tid = t2.id 
    group by id 

我想誰沒有在表t1從表中的兩 註冊用戶我用同樣的上述查詢,但像這樣的東西ON t1.tid != t2.id它僅適用於不重複的日期

SELECT 
    t2.name ,phone 
    FROM 
     (SELECT name,tid,date_d,class_time AS 'absent' 
      FROM absent where date_d = '2016-12-04') t1 
JOIN 
     (SELECT name, id,phone AS 'phone' 
      FROM users ) t2 
     ON t1.tid != t2.id 
     group by id 
+0

所以你想誰是不存在的缺席用戶?奇怪.... :) – barudo

回答

1

像在加入使用ON t1.tid != t2.id的條件將很可能給你一個結果,如果任一t1t2含有較多(因爲這樣,對於t1t2,tidid中的某些行將會有所不同)。你要找的是「那些在特定日期沒有缺席的用戶,即沒有absent -table存在的記錄」,對吧?

嘗試以下操作:

SELECT name,id,phone AS 'phone' 
FROM users t2 
WHERE t2.id not in 
    (SELECT tid 
    FROM absent where date_d = '2016-12-04') 
+0

感謝您的幫助 – mester

+0

不客氣! –

相關問題