从mySql中的表中获取行数

时间:2013-01-19 11:22:04

标签: mysql sql

我有一个名为'blogDetails'的表,其中包含blogId,userId,blogTitle,blogContent 我有另一个名为'blogPopularity'的表,其中包含blogId,userId,popularStat。

现在在第二个表(blogPopularity)中,'popularStat'字段可以包含'L'(对于喜欢)或'D'(对于不喜欢)。

我正在使用存储过程将两个内容(到blogDetails)和喜欢/不喜欢状态(到blogPopularity)插入。

我想显示每个博客的喜欢和不喜欢的数量。

有人建议我怎么做。

1 个答案:

答案 0 :(得分: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 ║
╚════════╩═══════════╩═══════╩══════════╝