Вопрос на засыпку: выбрать id пользователей и дату последнего поста

M
На сайте с 02.01.2013
Offline
38
636

Тривиальная задача: выбрать ID пользователей из таблицы `пользователи` и ДАТУ последнего написанного поста (из таблцы постов типа: ID_поста, ID_пользователя, дата_поста)

Если можно одним запросом БЕЗ подзапросов, если это не возможно то то что работает

Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#1

А почему без подзапросов? Хайлоадстопяцотплюсов😂


SELECT user_id, max(post_date)
FROM posts
WHERE user_id IN
(
SELECT user_id
FROM users
)
GROUP BY user_id

Можно еще левым джоином, но ночь на дворе, моск не думает;)

Подпись))
M
На сайте с 02.01.2013
Offline
38
#2
Милованов Ю.С:
А почему без подзапросов? Хайлоадстопяцотплюсов

кароч, наноч глядя может и я чё спутал, но моя ситуация такая же. искал решение и там был и ваш пример и с дополнительным джойном - так было везде где только не читал, но у меня вышло проще, посему и вопрос на засыпку :)

---------- Добавлено 13.03.2013 в 02:17 ----------

просто я в шоке как народ извращается при простом подходе.. по типу:

SELECT usr, SUBSTR(MAX(CONCAT(dt, post)), 1, 19) dt, SUBSTR(MAX(CONCAT(dt, post)), 20) post
FROM posts
GROUP BY usr

FAQ: Выборка первой/последней записи в группах

вся нить - http://www.sql.ru/forum/actualthread.aspx?tid=687908

так без подзапроса одним запросом получить "выбрать самый последний пост каждого юзера" кто-нить сможет?

Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#3

Работа с таблицей posts


-- Если юзер ничего не постил, его в выборке не будет.
SELECT user_id, max(post_date) FROM posts GROUP BY user_id

Или же надо, чтобы для тех кто ниче не писал приходил НУЛЛ или еще че-нить?

M
На сайте с 02.01.2013
Offline
38
#4
Милованов Ю.С:
Работа с таблицей posts

-- Если юзер ничего не постил, его в выборке не будет.
SELECT user_id, max(post_date) FROM posts GROUP BY user_id


Или же надо, чтобы для тех кто ниче не писал приходил НУЛЛ или еще че-нить?

вот и говорю, чем это хуже чем

SELECT user_id, max(post_date)
FROM posts
WHERE user_id IN
(
SELECT user_id
FROM users
)
GROUP BY user_id



---------- Добавлено 13.03.2013 в 02:42 ----------

Милованов Ю.С:
Или же надо, чтобы для тех кто ниче не писал приходил НУЛЛ или еще че-нить?

выбрать самый последний пост каждого юзера - и всё, а посмотрите как они извращаются ))

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий