Как выбрать MAX в LEFT JOIN?

Доброго времени суток!
Коллеги, прошу помощи (дать пендаль, куда копать...)
Так как потратил много времени и без результата.
Объясню суть проблемы на примере: Есть таблица authors (id,name) и таблица books (id,author_id,caption,date_crete). date_create - дата публикации книги
Необходимо сделать выборку авторов и отсортировать их по дате последней книги

Поскольку некоторые авторы могут не иметь книг, а выбрать их нужно - то нам нужен LEFT JOIN. причем таблица справа(author) нужно отсортировать по дате публикации книги

Пробовал разные варианты, но бес толку.

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Что вы пробовали, не

Что вы пробовали, не знаю.

Всё очень просто и ничем не отличается от обычного подхода:

SELECT a.accountid, MAX(t.createdon)
FROM account a
	LEFT JOIN ORDER t ON (t.accountid = a.accountid)
GROUP BY 1
ORDER BY 2 DESC NULLS FIRST

Всё верно вам ответил

Всё верно вам ответил altair
Надо не забывать только одну тонкость. Поскольку в отличие от MySQL наш PostgreSQL более соответствует стандартам SQL, то он не даёт использовать агрегатные функции без GROUP BY, что разрешает MySQL

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023