2011-04-22 55 views
1

我有一張名爲Tickets的表,其中包含id,name。 以及一個名爲Articles with id,ticket_id和status的表。MySQL從連接表中計數兩組

我想顯示所有票務名稱,以及文章與TICKET_ID的計數一起,並且還與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