MySQL查询 - 评论最多的文章&给定文章的相关信息

时间:2013-06-27 14:21:17

标签: mysql sql


我一直在创建一个名为news的数据库,其中包含几个包含不同信息的表,文章员工,图片等。有两件事我正在尝试做,第一次是获得三篇评论最多的文章,他们需要与最先评论最多的文章保持一致。 这是我一直在努力的代码。我有一个名为comments的表,其中包含文章ID等。

SELECT a.ArticelID, a.preamble, a.Published, k.postcount FROM Article as a

    INNER JOIN (
 SELECT ArticelID,
    count(*) AS postcount

    FROM comments

    GROUP BY ArticelID
) as k

    on a.ArticelID = k.ArticelID


    ORDER by k.postcount DESC LIMIT 3

但感觉有点无效,我只想简单地使用Join和Group By但是我无法通过我的头脑看到它应该是什么样子。

我要做的最后一件事是从文章中获取相关信息,当涉及到文章的图片时。我有两张桌子,一篇文章和一张图片,到目前为止我得到的是

SELECT PictureID, Filname, photographerName, ArticelID
FROM PictureID, Articel_Picture
WHERE PictureID IN (2);

但是我一直在收到“Column PictureID含糊不清”的错误,我该如何处理这条消息呢?

1 个答案:

答案 0 :(得分:0)

您的第一个查询没问题,但您也可以将其标记为:

SELECT a.ArticelID, a.preamble, a.Published, count(*) as CommentCount
FROM Article a join
     comments c
     on a.ArticleId = c.ArticleId
ORDER by CommentCount DESC
LIMIT 3;

对于第二个查询,您需要join和别名:

SELECT p.PictureID, p.Filname, p.photographerName, ap.ArticelID
FROM PictureID p join
     Articel_Picture ap
     on p.PictureId = ap.PictureId
WHERE ap.PictureID IN (2);