Можно ли одним запросом SQL объединить разные таблицы?
Постараюсь объяснить попонятнее.
Есть Таблица_1, в ней столбцы id и текст.
Есть Таблица_2 в ней - id, текст1, текст2.
Есть Таблица_3 в ней дата, столбец с типом подключаемой таблицы (соответсвенно 1 или 2) и id строки из подключаемой таблицы.
В результате должна получиться таблица, в которой к Таблице_3 в зависимости от идентификатора подключается строка из Таблицы_1 или Таблицы_2. Что-то вроде:
дата | type | id | ...
27.12.2014 | 1 | 242342 | текст_из_таблицы_1
27.12.2014 | 2 | 346343 | текст1_из_таблицы_2 | текст2_из_таблицы_3
Как составить запрос, формирующий такую таблицу, и можно ли сделать такое в принципе, я не знаю.
Единственная идея это сначала запросить Таблицу_3, запомнить ее в мacсиве, потом аналогично создать массивы с двумя другими таблицами, и перебирать в цикле первую, подставляя подходящие значения из других таблиц. Но тут получается 3 запроса к БД и несколько вложенных циклов в php-скрипте. Возможно оно и не займет много времени, но решение мне не кажется красивым.
P.S. Цель - получить сведенную таблицу для использования в php-скрипте, а не чисто на SQL, если что.
Можно.
Если структура БД отвечает реляционной модели.
Твоя структура - не не отвечает.
Поэтому сначала приведи структуру таблиц в порядок, выкини этот ад с дублированием таблиц и хранением имени таблицы в данных - и сможешь строить любые запросы.
А где там дублирование? Как, например, должны выглядеть таблицы? Хранение имени таблицы в данных (это в таблице, что ли?) для того ,чтоб как-то можно было ассоциировать таблицы друг с другом. Как по-другому можно связывать таблицы?
Я не умею объяснять структуру БД в терминах "вот тут у нас текстик, а там - ещё один". Если будет внятное описание данных, которые надо хранить - тогда я напишу, как спроектировать БД, и как связывать таблицы.