2014-10-03 2 views
1

두 열의 값이 같지 않은 행을 선택하려고합니다.두 열 값이 같지 않은 위치를 선택하십시오.

나는 다음과 같은 MySQL의 쿼리 한 : t1에서

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 

데이터는 다음과 같습니다 t2에서

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

데이터는 다음과 같습니다 위의 쿼리에서

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 

지금, 나는 t1에서 numvotes이 t2에서 계산 된 COUNT DISTINCT 값과 다른 경우에만 선택할 수있는 MySQL의 쿼리를 수정하고 싶습니다.

답변

3

이것은 HAVING 절에서 수행됩니다. GROUP BY 이전에 WHERE 필터, 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

맞음 - 내 대답을 무시하십시오. – jdog

관련 문제