방금 코드베이스를 상속 받았으며 올바르지 않은 기존 쿼리가 있습니다. 아무도 그것을 잠시 동안 잘못 눈치 없다는 것을 너무 가까이Mysql - 하나의 쿼리에서 2 카운트, 잘못된 두 번째 카운트 결과
select p.user_id, p.photo_id, p.date, count(p.photo_id) as 'Photos', count(v.photo_id) as 'Views'
from photos p
LEFT OUTER JOIN userviews v on v.user_id = p.user_id and v.photo_id = p.photo_id
where p.photo_id in (1,2,3 [...])
GROUP BY photo_id, user_id
ORDER BY user_id, photo_id
결과 세트가 가까이 해결하려면 : 그것은 (& 열 여기가 genericized 테이블)처럼 보인다.
표 2 (사용자보기)에 데이터가없는 경우 결과 행이 올바른 것입니다. 지금
1082 3381 2012-05-25 08:50:20 3 3 <--WRONG, should be 1
1082 3387 2012-07-26 15:02:36 2 2 <--WRONG, should be 4
1117 3381 2012-05-23 03:46:02 1 0 <--CORRECT
1117 3382 2012-05-23 03:45:54 1 0 <--CORRECT
1117 3383 2012-05-23 03:45:09 1 0 <--CORRECT
을이 SQL 서버 인 경우에, 난 그냥를 사용 망할 일을 다시 것 : 데이터가있는 경우
그러나, 결과 집합 즉, 표 1에서 카운트 값을 복제한다 CTE가 있지만, MySQL은 WITH 절을 지원하지 않으며 여러 값을 반환 할 때 하위 쿼리를 작성할 수 있다고 생각하지 않습니다.
그래서 어떻게 이것을 MySQL에서 해결할 수 있습니까? 사전에 감사드립니다, 나는이 하나에 난처 해 해요.
집계되지 않은 샘플 데이터를 게시 할 수 있습니까? – Rachcha