SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 01.04.2011 17:46:01

Andrey66
Участник
Зарегистрирован: 01.04.2011
Сообщений: 7

Запрос из двух таблиц. Результат в одну. Не Join

Здравствуйте. У меня такая задача.
Есть 2 таблицы. Таблицы очень похожи.
1ая таблица это комментарии к фотографиям.
Есть поля, допустим photo_id, comm_id, date, text
И 2ая таблица, комментарии к постам
Есть поля, допустим post_id, comm_id, date, text
Задача: вытянуть последние 5 комментариев из обоих таблиц. То есть результат это 5 записей.
Мне почему-то советовали все использовать Join,но он же просто, как бы, дополняет справа или слева общий результат, а мне нужно "дополнить снизу".
Заранее спасибо.

btw, изменить структуры БД нет возможности, все уже сильно закручено. Рефакторинг может и будет в будущем, но не сейчас.

Неактивен

 

#2 01.04.2011 18:50:06

avgsoft
Завсегдатай
Зарегистрирован: 23.09.2010
Сообщений: 36

Re: Запрос из двух таблиц. Результат в одну. Не Join

Здравствуйте. Попробуйте так(имена таблиц вымышленные, любое совпадение с реальными названиями - случайность)


select comm_id, date, text
from (
  (select comm_id, date, text from photo_comment order by date desc limit 5)
  union
  (select comm_id, date, text from post_comment order by date desc limit 5)
) order by date desc limit 5;
 

Для быстрой работы этого запроса необходим индекс на date в каждой таблице для сортировки.

Отредактированно avgsoft (01.04.2011 18:50:45)

Неактивен

 

Board footer

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