2014-04-29 17 views
-2

如何選擇表中的所有記錄t2其中t2.t1_idt1.id並不一致。狀態中的數據不相等

SELECT * FROM t2 LEFT JOIN t1 ON t1.id <> t2.t1_id 

任何提示,鏈接或代碼示例將是有用的。

+0

您可以發佈表中的信息和你想獲得的數據的例子嗎? –

+0

[只有當值不存在時才返回行\ [MYSQL \]]的可能重複(http://stackoverflow.com/questions/21633115/return-row-only-if-value-doesnt-exists-mysql) – Barmar

回答

2

如果你想要的是沒有在T1匹配的ID的所有T2記錄,但是從T1沒有列,你可以這樣做:

Select * from t2 
WHERE t2.t1_id NOT IN(Select id from T1) 

這選擇在T2中的所有記錄,但隨後篩選出那些存在於T1基於t1_id

1

您可以使用not in

SELECT * 
FROM t2 
WHERE t2.t1_id not in (select id from t1) 
1
SELECT t2.* 
FROM t2 
LEFT JOIN t1 
    ON t1.id = t2.t1_id 
where t1.id is null 
1

只想一個DD,NOT EXIST在大多數情況下更好地:

SELECT * 
FROM t2 
WHERE NOT EXIST (SELECT 1 FROM t1 
          WHERE t2.t1_id = t1.id) 

否則,您可以使用NOT INLEFT JOIN with NULL