SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 26.02.2007 21:42:37

Назым
Участник
Зарегистрирован: 26.02.2007
Сообщений: 1

union

можно каким-либо образом указать group by для резальтата работы оператора UNION?

Допустим вот такая конструкция:
(select id, user_id, date from table1)
union
(select id, user_id, date from table2)
group by user_id
order by date desc
вызывает ошибку

(select id, user_id, date from table1 group by user_id)
union
(select id, user_id, date from table2 group by user_id)
order by date desc

выдает первую попавшуюся строку (с меньшим ID и датой), а нужно, чтобы выдавалась последняя.

Неактивен

 

#2 02.03.2007 16:21:45

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6732

Re: union

Честно говоря, не совсем понятен вопрос. Попробую его перефразировать и написать
ответ. Если перефразировал неверно, то попробуйте сформулировать его правильно.

Итак, вопрос:
Есть две идентичные таблицы с тремя столбцами (id, user_id, date). Нужно выбрать из
обеих таблиц для каждого пользователя (user_id) максимальную дату (date).

Решение:
SELECT user_id, MAX(data)
FROM (SELECT * FROM table1 UNION SELECT * FROM table2) tbl
GROUP BY user_id;

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson