2011-04-22 2 views
1

id, name을 가진 Tickets 테이블이 있습니다. 및 id, ticket_id 및 status가있는 Articles라는 테이블이 있습니다.MySQL은 조인 된 테이블의 두 그룹을 계산합니다.

내가 그 TICKET_ID와 기사의 COUNT과 함께 모든 티켓의 이름을 표시하기 위해 노력하고있어, 또한 그 TICKET_ID 및 상태와 기사의 COUNT = '1'이

지금까지 나는이 시도했다 성공하지 못했습니다 :

SELECT t.name, count(a.id), count(aa.id) 
FROM tickets t 
LEFT JOIN articles a ON t.id = a.ticket_id GROUP BY t.id 
LEFT JOIN articles aa ON t.id = aa.ticket_id AND aa.status = '1' GROUP BY t.id 

도움과 조언을 미리주십시오.

답변

1

그것은 작동합니다 ...

SELECT t.name, 
      count(a.id), 
      SUM(CASE WHEN a.status = '1' THEN 1 ELSE 0 END) 
     FROM tickets t 
     LEFT JOIN articles a 
     ON t.id = a.ticket_id 
    GROUP BY t.id, 
      t.name