在MySQL查询中使用WHERE子句中的子选择结果

时间:2012-04-14 18:44:39

标签: mysql select subquery

SELECT
  *, (SELECT SUM(rating) FROM votes WHERE votes.postId = posts.id) AS rating
FROM posts
WHERE rating > 10

我的表中有多个条目,其中投票评级与相应帖子ID的总和大于10,但此查询未返回任何结果。为什么呢?

以下是我的数据库结构的相关部分:

TABLE posts
 - id

TABLE votes
 - postId
 - rating

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

您需要命名子查询列,如此

SELECT * FROM (选择总和(评级)为rating_sum,* FROM posts)AS评级 在posts.id = rating.id上的INNER JOIN帖子 在哪里rating.rating_sum> 10

答案 1 :(得分:0)

试试这个。

 SELECT posts.*, (select SUM(rating) as totalRating 
                    from votes 
                   where votes.postid = posts.id) as totalRating
 FROM   posts 
 WHERE  totalRating > 10