1

blogId、userId、blogTitle、blogContentを持つ「blogDetails」という名前のテーブルがあります。blogId、userId、popularityStatを持つ「blogPopularity」という名前の別のテーブルがあります。

2番目のテーブル(blogPopularity)のフィールド'popularityStat'には、'L'(好きな場合)または'D'(嫌いな場合)のいずれかを含めることができます。

ストアドプロシージャを使用して、コンテンツ(blogDetailsに)と好き/嫌いのステータス(blogPopularityに)の両方を挿入しています。

各ブログのいいねと嫌いの数を表示したい。

誰かが私にこれを行う方法を提案します。

4

1 に答える 1

4
SELECT  a.blogId, 
        a.blogTitle,
        SUM(CASE WHEN b.popularityStat = 'L' THEN 1 ELSE 0 END) `LIKES`,
        SUM(CASE WHEN b.popularityStat = 'D' THEN 1 ELSE 0 END) `DISLIKES`
FROM    blogDetails a
        LEFT JOIN blogPopularity b
            ON a.blogID = b.blogID
GROUP   BY  a.blogId, a.blogTitle

サンプル結果

╔════════╦═══════════╦═══════╦══════════╗
║ BLOGID ║ BLOGTITLE ║ LIKES ║ DISLIKES ║
╠════════╬═══════════╬═══════╬══════════╣
║      1 ║ Title1    ║     7 ║        3 ║
║      2 ║ Title2    ║     6 ║        4 ║
║      3 ║ Title3    ║     3 ║        1 ║
╚════════╩═══════════╩═══════╩══════════╝
于 2013-01-19T11:24:37.743 に答える