Как выбрать из всех таблиц по 1 последней записи ?

Привет всем )
В общем:
пишется сайт : php + mySQL, все с нуля

В базе данных есть таблицы такой структуры (id, title, date), которые создаются динамически, по мере работы сайта
Есть так же таблица, в которой хранятся ИМЕНА всех динамически-созданных таблиц (id, table_name)

ворос в следующем

пусть уже создалось ~ 20 динамических таблиц
естественно в кажой таблице есть записи...

как выбрать САМЫЕ ПОСЛЕДНИЕ записи из этих динамических таблиц, НО : по 1 записи с каждой таблицы

т е :

[динамическая таблица1] - [поcледняя запись]
[динамическая таблица2] - [поcледняя запись]
[динамическая таблица3] - [поcледняя запись]
итд

Чем подробнее объясните, тем лучше

ЗЫ: можно прямо с php вкладками

Спасибо )
  • Вопрос задан
  • 2409 просмотров
Решения вопроса 1
@robofox
Сначала покритикую структуру базы.
Динамические таблицы имеет смысл создавать только если у них будут наборы полей, которые нельзя определить на этапе проектирования. И делать это нужно только в крайних случаях.
В данном случае нужно было создать одну таблицу (id, title, date), в которую добавить поле "table_id", в котором хранить id таблицы. В другой таблице "table_names" хранить эти id + имена таблиц + дополнительную информацию.
Тогда ответом на вопрос будет один относительно простой запрос с GROUP BY.

По существу вопроса: придется делать 20 динамических запросов:
SELECT * FROM table_name1 ORDER BY date DESC LIMIT 1
, затем объединять ответы в UNION. Это неэффективно и трудоемко.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы