[英]MySQL query from three different tables
我建立了工作的MySQL查询:
SELECT
v.*, u.username
FROM
video AS v, users AS u
WHERE
v.type = 'public'
AND
v.user_ID = u.user_ID
现在,我想添加第三个表,并从表comments
中video_ID
count()
结果,其中该表中的video_ID
将与表video
中的video_ID
相等。
我试过了,但是没有成功:
SELECT
v.*, u.username, count(c.video_ID)
FROM
video AS v, users AS u, comments AS c
WHERE
v.type = 'public'
AND
v.user_ID = u.user_ID
AND
v.video_ID = c.video_ID
作为回报,我想获得与某些video_ID
相关的评论数。
我不明白如何在一个查询中使其正常工作。
你能帮我吗?
先感谢您,
伊利亚
如果在查询中使用诸如COUNT
类的聚合函数,则需要使用GROUP BY
子句指定分组。
尝试这个
SELECT
v.*,
u.username,
count(c.video_ID) AS comment_count
FROM
video AS v
INNER JOIN users AS u ON v.user_ID = u.user_ID
INNER JOIN comments AS c ON v.video_ID = c.video_ID
WHERE
v.type = 'public'
GROUP BY
v.id,
u.username,
v.v.add_time
ORDER BY
v.add_time
虽然MySQL允许您省略GROUP BY
子句的某些元素,但是最好指定它们。
连接两个表时,最好使用INNER JOIN
语法,而不是WHERE
过滤器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.