2017-01-01 1 views
0

私はこの2つのテーブルをリンクするMySQLクエリを持っています。私は、他のテーブルの存在しないデータを取得するテーマに参加したいと思います。ここ2つのテーブルのデータが存在しないようにしたい

これは、私は、テーブル2 からテーブル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 

のための登録日付を取得します重複しない日付

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

いずれかt1またはt2がより含まれている場合、結合に使用さON t1.tid != t2.idなどの条件はあなたに結果を与える可能性が高いでしょう(したがって、t1t2の一部の行では、tididが異なることになります)。あなたが探しているのは、「特定の日に欠席していないユーザー、つまりabsent表にエントリが存在しないユーザー」です。

は、以下のことを試してみてください。

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

あなたを大歓迎です! –

関連する問題