我有以下两个表(填充更多的数据):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 –