Эй, у меня есть 2 таблицы в PostgreSql:PostgreSQL, выберите из 2 таблиц, но только последний элемент из таблицы 2
1 - documents: id, title
2 - updates: id, document_id, date
и некоторые данные:
документы:
| 1 | Test Title |
Обновления:
| 1 | 1 | 2006-01-01 |
| 2 | 1 | 2007-01-01 |
| 3 | 1 | 2008-01-01 |
Таким образом, все обновления указывают на один и тот же документ, но все с разными датами обновлений.
То, что я пытаюсь сделать, это сделать выбор из таблицы документов, а также включить последнее обновление на основе даты.
Как должен выглядеть такой запрос? Это один я в настоящее время, но я перечислю все обновления, и не последняя из них, как один мне нужно:
SELECT * FROM documents,updates WHERE documents.id=1 AND documents.id=updates.document_id ORDER BY date
Для включения; Причина, в которой я нуждаюсь в этом запросе, - это то, что я хочу заказать по дате из шаблона обновлений!
Edit: Этот сценарий сильно упрощен, так что я должен быть в состоянии создать запрос, который возвращает любое количество результатов, но в том числе последних обновленной даты. Я думал о том, чтобы использовать внутреннее соединение или левое соединение или что-то такое вот так !?
Нет, как написано в настоящее время, это не будет работать. Ваш подзапрос возвращает самую последнюю «дату» из всей таблицы обновлений независимо от документа, так что это приведет к результатам, только если выбранные вами документы, которые вы выбрали, были обновлены в самую последнюю дату обновления. – pilcrow
Вы правы. Подзапрос должен читать SELECT MAX (дата) Из обновлений, где id = 1) –