我有以下兩個表(填充更多的數據):SQL加入排序和限制結果
評級
ID | user_id | rating_value | date
1 1 0.6 2016-04-02
2 2 0.75 2016-04-05
3 1 0.4 2016-04-08
4 2 0.5 2016-04-12
推薦
ID | user_id | recommendation_text | date
1 1 'a' 2016-04-03
2 2 'b' 2016-04-07
3 1 'c' 2016-04-09
我想從每個行i的評級表中選擇recommendation_text,user_id和最新評級值在推薦表中。
我無法只返回了最新的評價值(預期)
SELECT rec.user_id, rec.recommendation_text, rec.recommendation.date, rating.rating_value, rating.date
FROM recommendation AS rec
JOIN rating
ON rec.user_id = rating.user_id;
返回所有值加入到建議。最終的結果,我想產生是:
user_id | recommendation_text | recommendation_date | rating_value | rating_date
1 'a' 2016-04-03 0.6 2016-04-02
2 'b' 2016-04-07 0.75 2016-04-05
1 'c' 2016-04-09 0.4 2016-04-08
我認爲這裏有一條信息缺失,我不知道如何選擇哪個評級來附加到哪個建議。在您的示例查詢中,您只能加入用戶ID,但如果這是您關心的唯一密鑰,那麼每個用戶不會有超過一個建議。 ID是從一個表到另一個表的外鍵? – Kateract
你正在使用哪些DBMS? –
使用PostgreSQL –