繁体   English   中英

来自三个不同表的MySQL查询

[英]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

现在,我想添加第三个表,并从表commentsvideo_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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM