0
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

どんな助けでも大歓迎です。

4

2 に答える 2

0

これを試して。

 SELECT posts.*, (select SUM(rating) as totalRating 
                    from votes 
                   where votes.postid = posts.id) as totalRating
 FROM   posts 
 WHERE  totalRating > 10 
于 2012-04-14T19:31:41.917 に答える
0

このように、サブクエリ列に名前を付ける必要があります

SELECT * FROM (SELECT sum(rating) as rating_sum, * FROM posts) as rating INNER JOIN posts on posts.id = rating.id WHERE rating.rating_sum>10

于 2012-04-14T18:52:46.320 に答える