您好,感谢您对此进行调查。
此刻我有以下查询:
SELECT videos.video_genre_id, videos.username, videos.title, videos.slugTitle, videos.link, videos.tags, videos.date_added, video_genre.video_genre_id, video_genre.video_genre
FROM videos, video_genre
WHERE videos.accepted = 'y'
AND videos.video_genre_id = video_genre.video_genre_id
ORDER BY videos.date_added DESC
工作正常。但我想计算每个视频的总评论数。我有另一个名为“video_comments”的表,其中包含以下字段:
video_comments_id
videos_id
comment
使用一个查询并获取每个视频的总评论的最佳解决方案是什么?我以前从不使用COUNT,所以我不知道从哪里开始。
提前致谢。
编辑:
“视频”表格中包含“videos_id”字段作为主要字段。
编辑2:
我想我得到了答案:
SELECT (select count(*) from video_comments AS total), videos.video_genre_id, videos.username, videos.title, videos.slugTitle, videos.link, videos.tags, videos.date_added, video_genre.video_genre_id, video_genre.video_genre
FROM videos, video_genre
WHERE videos.accepted = 'y'
AND videos.video_genre_id = video_genre.video_genre_id
ORDER BY videos.date_added DESC
唯一的问题是我似乎无法将“总数”作为一行来显示总评论。
答案 0 :(得分:1)
像
这样的东西 SELECT videos.video_genre_id, videos.username, videos.title, videos.slugTitle, videos.link, videos.tags, videos.date_added, video_genre.video_genre_id, video_genre.video_genre, COUNT(video_comments.videos_id)
FROM videos INNER JOIN video_genre ON videos.video_genre_id = video_genre.video_genre_id
LEFT JOIN video_comments ON video.id = video_comments.videos_id
WHERE videos.accepted = 'y'
GROUP BY videos.video_genre_id, videos.username, videos.title, videos.slugTitle, videos.link, videos.tags, videos.date_added, video_genre.video_genre_id, video_genre.video_genre
ORDER BY videos.date_added DESC
我没有测试过,但这就是想法!
答案 1 :(得分:1)
SELECT videos.video_genre_id
, videos.username
, videos.title
, videos.slugTitle
, videos.link
, videos.tags
, videos.date_added
, video_genre.video_genre_id
, video_genre.video_genre
, COUNT(video_comments.video_comments_id) AS totalcomments
FROM videos
JOIN video_genre
ON videos.video_genre_id = video_genre.video_genre_id
JOIN video_comments
ON video_comments.videos_id = videos.videos_id
WHERE videos.accepted = 'y'
GROUP BY videos.videos_id
, video_genre.video_genre_id
ORDER BY videos.date_added DESC
;
如果您希望没有评论的视频也显示(总评价为0),请将JOIN video_comments
更改为LEFT JOIN video_comments
。