2011-11-09 105 views
0

假設一個職位表和一個對這些職位的評論表。表'comments'有一個名爲'post_id'的列,其中包含每個評論的目標ID,以及一個標題爲'rating'的列,該列包含每個評論的評分(大拇指向下減去大拇指)。加入訂購表

我需要的是一個查詢,將選擇所有的帖子,以及最高評價。普通加入,如下所示:

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

...將爲每條評論返回一行。我猜測我需要按評級排序表格評論,然後通過帖子ID對結果進行分組。但是我一直在尋找適當的語法來做到這一點,並且找不到它(反覆試驗和錯誤都不起作用)。有任何想法嗎?謝謝!

回答

0

嘗試使用子查詢,但要小心大疑問,因爲它往往是沉重的服務器上

SELECT * FROM posts 
LEFT JOIN comments ON comments.rating = 
    (SELECT MAX(comments.rating) 
    FROM comments 
    WHERE comments.post_id = posts.id);