2011-11-09 13 views
0

投稿のテーブルとそれらの投稿へのコメントのテーブルを想定します。テーブル 'comments'には、各コメントのターゲットのIDを保持する 'post_id'というタイトルの列と、各コメントの評価を保持する 'rating'という列があります(サム・アップからサム・ダウンを引いたもの)。注文したテーブルとの結合

私が必要とするのは、すべての投稿と、最高評価のコメントを選択するクエリです。次のような通常の結合:

SELECT * FROM posts LEFT JOIN comments ON comments.post_id = posts.id; 

...コメントごとに1行が返されます。私は、評価によって表コメントを注文し、その結果を投稿IDでグループ化する必要があると推測しています。しかし、私はそうするための適切な構文を探していましたが、それを見つけることができませんでした(試行錯誤もうまくいかなかった)。何か案は?ありがとう!

答えて

0

、副選択をしてみたが、大規模なクエリに注意してください

SELECT * FROM posts 
LEFT JOIN comments ON comments.rating = 
    (SELECT MAX(comments.rating) 
    FROM comments 
    WHERE comments.post_id = posts.id); 
関連する問題