Я Вас приветствую. Подскажите, может кто сталкивался... Как подставить в качестве имени таблицы значение поля другой таблицы в одном запросе. В таблице t1 динамически меняются имена таблиц (меняет приложение). FROM t1.table_name
t1 - это наверное база данных? table_name - это наверное имя таблицы? Вам нужно в одном запросе получить данные с разных таблиц или баз данных? PHP: function ($table1, $table2) { $sql="SELECT t1.*, t2.* FROM {$table1} AS t1 LEFT JOIN {$table2} AS t2 ON ..."; //должна быть связь между таблицами } А так по вашему вопросу фиг знает что вам надо. Если бы могли сначала сформулировать, а потом вбить этот в гугл, ответ бы нашелся. --- Добавлено --- Или вы подразумеваете под полем таблицы, имя столбца? PHP: function ($table1, $table2) { $sql="SELECT t1.{$table2} FROM {$table1} AS t1 } --- Добавлено --- В любом случае вы что то недопонимаете в SQL.
Товарищ имеет ввиду наверное что то типа Код (Text): Select id from (select name from t1 where id = 2)
@Artur_hopf, ТС хочет использовать значение из БД в качестве имени таблицы в запросе. --- Добавлено --- @FedorSWNet, насколько знаю, такой возможности нет. Используйте отдельный запрос.
А может автор имеет в виду полиморфные связи? Там должен присуствовать какой-то признак с какой таблицей у данной записи идёт связь. В Laravel для этого по умолчанию используется имя класса, но возможной всякое. Вот сколько трактовок.
Уважаемые форумчане, извините за неточную формулировку.... Совершенно верно!!! --- Добавлено --- Очень жаль, в моем случае сильно бы облегчило ситуацию.
Ну, не знаю. Куча наших сайтов построена на моделях, предполагающих хранение имен (или основ для имен) таблиц в БД. С отдельными запросами все решается довольно просто. Можете покопать в сторону «dynamic sql», о чем вам выше написали. Но в этом случае если что-то и получится, то будет значительно сложнее.