2014-10-03 30 views
1

我正在尋找選擇兩列中的值不相等的行。選擇兩列值不相等的地方

我有以下MySQL查詢:

SELECT t1.id, t1.numvotes, COUNT(DISTINCT t2.id) AS numvotes 
FROM t1 
LEFT JOIN t2 ON 
    (t1.id = t2.id) 
GROUP BY t1.id 

t1的數據是:

id | numvotes 
------------------- 
    1  | 4 
    2  | 6 
    3  | 1 
    4  | 3 
    5  | 2 

數據從t2是:

id 
----- 
1 
1 
1 
1 
2 
2 
2 
3 
4 
4 
4 
5 

從上述查詢的結果將是:

id | numvotes | numvotes 
------------------------------- 
    1  | 4   | 4 
    2  | 6   | 3 
    3  | 1   | 1 
    4  | 3   | 3 
    5  | 2   | 1 

現在,我想修改MySQL查詢,只選擇其中來自t1的numvotes是從t2計算COUNT DISTINCT值不同。

回答

3

這是在HAVING條款中完成的。 WHEREGROUP BY之前的過濾器,GROUP BY之後的HAVING

SELECT t1.id, t1.numvotes, COUNT(DISTINCT t2.id) AS numvotes 
FROM t1 
LEFT JOIN t2 ON t1.id = t2.id 
GROUP BY t1.id 
HAVING COUNT(DISTINCT t2.id) <> t1.numvotes 
+0

correct - ignore my answer – jdog 2014-10-03 00:42:26

相關問題