1

我有一个名为“blogDetails”的表,其中包含 blogId、userId、blogTitle、blogContent 我还有另一个名为“blogPopularity”的表,其中包含 blogId、userId、popularityStat。

现在在第二个表(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 回答