я следующие две таблицы (заполняется больше данных):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
Я хотел бы выберите рекомендацию_текст, user_id и последнее рейтинговое значение из таблицы рейтинга для каждой строки i n таблица рекомендаций.
У меня возникли проблемы только возвращающегося последнее значение рейтинга:
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
Я думаю, что здесь отсутствует какая-то информация, я не уверен, как вы выбираете, какой рейтинг следует приложить к какой рекомендации. В вашем примере запроса вы присоединяетесь только к идентификатору пользователя, но если бы это был единственный ключ, о котором вы заботились, было бы не более одной рекомендации для каждого пользователя. Является ли идентификатор внешним ключом из одной таблицы в другую? – Kateract
Какая СУБД вы используете? –
Используя PostgreSQL –