Доброго времени суток.
есть 3 таблицы: t_index, t1, t2
структура t1 и t2 не существенна
t_index имеет 2 поля - ID и t_name
в t_name содержится имя таблицы в которой находится информация о ID
(например id=1, t_name=t1; id=2, t_name=t1; id=3, t_name=t2)
задача - создать представление (VIEW) которое будет отображать следующее: (синтаксис не верен, но суть думаю будет ясна)
SELECT * FROM t_index.t_name WHERE t_index.t_name=t_index.ID
или
SELECT * FROM (SELECT t_name FROM t_index) WHERE t_index.ID=ИМЯ ТАБЛИЦЫ ДЛЯ ВЫБОРКИ(t1 или t2).ID
т.е. значение поля t_name должно служить именем таблицы для выборки результатов
1. Артком - 20 Октября, 2013 - 11:54:03 - перейти к сообщению
2. MAXUS - 20 Октября, 2013 - 13:00:43 - перейти к сообщению
Цитата:
т.е. значение поля t_name должно служить именем таблицы для выборки результатов
Если не ошибаюсь, в MYSQL подставить переменное значение вместо имени таблицы или колонки можно только используя пользовательские переменные или подготовленные выражения, но они живут только пока живет сессия, что исключает их использование во VIEW.
Зато на php это все можно реализовать в три секунды. Делаешь запрос в t_index, выясняешь имя таблицы и записываешь его, например, в переменную $table_name. А потом делаешь как-нибудь так:
И запускаешь этот запрос из php.
(Добавление)
А если у тебя структура t1 и t2, вдруг, совпадает, то тогда проще это все держать в одной таблице и ввести дополнительное поле, по которому будешь различать информацию t1 от t2. Хотя, скорее всего, у тебя структура не совпадает, поэтому это я на всякий случай...