Объединение выборок из таблиц с разной структурой, но с общей сортировкой по дате

Кинотавр

Новичок
Объединение выборок из таблиц с разной структурой, но с общей сортировкой по дате

Возникла такая задачка, не вполне представляю как реализовать. Вероятно, какой-то сложный составной запрос. Прошу подсказать, в какую сторону двигаться.

Итак, имеем две таблицы: статьи и фотогалереи. Таблицы совершенно разные по структуре. У обеих есть поле date, в котором хранится дата создания статьи или фотогалереи.

Когда заходим в рубрику сайта, должны выводиться статьи и галереи вперемешку, сортировка по дате. Все это еще и бьется на страницы, ну это уже не так важно, это я так, к слову.

То есть, должен быть некий запрос MySQL, который вытащит из обеих таблиц содержимое, с сортировкой по дате, и всю эту мешанину из статей и фотогалерей мы должны вывести в рубрике.

Прошу подсказать, какие можно использовать для этого запросы, что-то связанное с JOIN или APPEND или UNION, видимо?
Что в результате получается - массив по mysql_fetch_array со структурой, сочетающей в себе поля из обеих таблиц что ли? И как потом отличить, из какой таблицы дернули?

В общем, прошу помочь,
Спасибо.
 

DiMA

php.spb.ru
Команда форума
2 примитивнейших запроса с Union и общей сортировкой по дате

не понятно, в чем вопрос, быстрее запрос написать.. видимо, острый приступ мыследумия и боязнь просто попробовать .-)
 

DiMA

php.spb.ru
Команда форума
варианты
1. первый запрос - взять id+data, второй и третий - данные по 2м таблицам
2. оба селекта в юнионе привести к одинаковой структуре запроса (+можно применить строковые функции)
 

Кинотавр

Новичок
Насчет того, как привести к одинаковой структуре запроса, подробнее плз? Что-то не понял.
 

berkut

Новичок
Кинотавр
юниону ваще срать с колокольни на структуры _таблиц_. ему нажна одинаковая структура выборка, которая может быть легко достигнута при объеденинии хоть каких таблиц
 

Кинотавр

Новичок
Так ведь чтобы вывести данные из статей и фотогалерей, надо совершенно разную структуру использовать. Статья - это уже нормальный материал, который сразу выводится, а для фотогалереи запрашивается еще и таблица, содержащая сами картинки. Так что, тут кроме даты, по сути ничего общего и нету. Ну есть поле id, тоже в обоих таблицах встречается. Где тут одинаковая структура, и нахрена нужна такая, раз толку от нее нет?

Ну предположим, сделаю я выборку с UNION одного поля id, с сортировкой по полю date. А дальше что? Даже чтобы начать на основе первой вторые выборки из соответствующих таблиц, надо сперва понять, откуда дернули id. А как это понять?
 

Alexandre

PHPПенсионер
сводим к одинаковой структуре приблизительно так:
SELECT name, date, image, '' as description, 1 as type FROM gallery
UNION
SELECT title as name, date, '' as image ,description, 2 as type FROM news

введено искусственное поле type - которое показывает какой шаблон использовать при выводе ( 1- галлерея, 2- новость ) или шаблонизации
недостающие поля заменяем пробелом, не забываем задавать имя поля
неиспользуемые выкидываем
одинаковые по функциональности (name vs title) сводим к одному имени поля
 
Сверху