2014-12-23 3 views
0

Users에는 5 개의 행이 있지만 결과에서이 쿼리를 사용할 때 하나만 표시됩니다.두 번째 테이블의 count 행이있는 첫 번째 테이블의 모든 행을 얻는 방법은 무엇입니까?

테이블 Users의 모든 라인을 얻고 q.Status = 'no'을 각 행의 테이블 Quest에서 가져오고 싶습니다. 그걸 어떻게 만들었습니까?

SELECT 
    *, 
    ifnull(count(q.Status = 'no'),0) as CountQuestionsNew 
FROM 
    Users as u 
    LEFT JOIN Quest as q on q.UserID = u.UserID 
WHERE 
    u.UserID != '453' 
+0

입니다하시기 바랍니다. –

답변

1

이와 비슷한 제품을 찾고 계십니까? 여기

SELECT u.*, COALESCE(q.CountQuestionsNew, 0) CountQuestionsNew 
    FROM Users u LEFT JOIN 
(
    SELECT UserID, SUM(status = 'no') CountQuestionsNew 
    FROM Quest 
    GROUP BY UserID 
) q 
    ON u.UserID = q.UserID 
WHERE u.UserID <> '453' 

쿼리를 처리하는 코드를 보여 SQLFiddle 데모

관련 문제