1

我只想回应文章并按用户评论的最多数量对其进行排序。这是我的两张桌子

tbl_articles

article_id  |  articles_title  |
 1          |     This is 1st  |
 2          |     This 2nd    |

tbl_comment:

comment_id  |   user_id     | article_id | comment_msg
 1          |       1       |    1       | my comment1
 2          |       1       |    2       | my comment2
 3          |       2       |    1       | some comment1

如何加入这些表并强制产生这样的结果

 article_id|articles_title|  comment_count  |
     1     |  This is 1st |    2            |
     2     |  This 2nd    |    1            |

谢谢

4

2 回答 2

2

下面的查询使用INNER JOIN它只会显示结果中的所有文章,如果它至少有1评论。如果您想在没有评论的情况下显示文章,请更改INNER JOINLEFT JOIN.

SELECT  a.article_ID,
        a.article_title,
        COUNT(*) Comment_Count
FROM    articles a
        INNER JOIN comment b
            ON a.article_ID = b.article_ID
GROUP   BY a.article_ID, a.article_title

要进一步了解有关联接的更多信息,请访问以下链接:

于 2013-04-24T01:48:49.567 回答
1

这是一个带有聚合的简单连接查询:

select article_id, articles_title, count(c.comment_id) as comment_count
from tbl_articles a left outer join
     tbl_comment c
     on a.article_id = c.article_id
group by article_id, articles_title

这使用 aleft outer join来保留所有文章,即使它们没有评论。

于 2013-04-24T01:49:54.210 回答