1

id、nameのTicketsというテーブルがあります。そして、id、ticket_id、およびstatusを持つArticlesと呼ばれるテーブル。

すべてのチケット名と、そのticket_idを持つ記事の数、およびそのticket_idとステータス='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

ヘルプとアドバイスを事前に感謝します。

4

1 に答える 1

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
于 2011-04-22T16:49:43.717 に答える