2012-04-14 17 views
0
SELECT 
    *, (SELECT SUM(rating) FROM votes WHERE votes.postId = posts.id) AS rating 
FROM posts 
WHERE rating > 10 

私のテーブルには、対応する投稿IDとの投票率の合計が10より大きい複数のエントリがありますが、このクエリ結果は返されません。どうして?すべてのヘルプをいただければ幸いですMySQLクエリのWHERE句でサブセレクションの結果を使用する

TABLE posts 
- id 

TABLE votes 
- postId 
- rating 

は、ここに私のデータベース構造の関連部分です。

答えて

0

あなたは FROMこの

SELECT *のようにposts.id = rating.id に評価 INNER JOINを投稿AS(postsからrating_sumとして合計(定格)、*を選択)、サブクエリの列に名前を付ける必要がありますWHERE rating.rating_sum> 10

+0

申し訳ありません、私はちょうど私の質問を編集しました。残りの列を 'posts'からも取得したいのですが? –

+0

私のクエリが更新されました。 –

+0

わかりました。甘い、ありがとう! –

0

これを試してください。

SELECT posts.*, (select SUM(rating) as totalRating 
        from votes 
        where votes.postid = posts.id) as totalRating 
FROM posts 
WHERE totalRating > 10 
関連する問題