我一直在创建一个名为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含糊不清”的错误,我该如何处理这条消息呢?
答案 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);