За последние 24 часа нас посетили 22019 программистов и 1128 роботов. Сейчас ищут 866 программистов ...

Имя таблицы как поле другой таблицы

Тема в разделе "PHP и базы данных", создана пользователем FedorSWNet, 5 авг 2020.

  1. FedorSWNet

    FedorSWNet Новичок

    С нами с:
    6 сен 2019
    Сообщения:
    19
    Симпатии:
    0
    Я Вас приветствую.
    Подскажите, может кто сталкивался...
    Как подставить в качестве имени таблицы значение поля другой таблицы в одном запросе.
    В таблице t1 динамически меняются имена таблиц (меняет приложение).
    FROM t1.table_name
     
  2. Artur_hopf

    Artur_hopf Активный пользователь

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    t1 - это наверное база данных?
    table_name - это наверное имя таблицы?
    Вам нужно в одном запросе получить данные с разных таблиц или баз данных?
    PHP:
    1. function ($table1,  $table2)
    2. {
    3.       $sql="SELECT t1.*, t2.*
    4.             FROM {$table1} AS t1
    5.             LEFT JOIN {$table2} AS t2 ON ...";  //должна быть связь между таблицами
    6. }
    А так по вашему вопросу фиг знает что вам надо. Если бы могли сначала сформулировать, а потом вбить этот в гугл, ответ бы нашелся.
    --- Добавлено ---
    Или вы подразумеваете под полем таблицы, имя столбца?
    PHP:
    1. function ($table1,  $table2)
    2. {
    3.       $sql="SELECT t1.{$table2}
    4.            FROM {$table1} AS t1
    5. }
    --- Добавлено ---
    В любом случае вы что то недопонимаете в SQL.
     
  3. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.825
    Симпатии:
    738
    Адрес:
    Татарстан
    Товарищ имеет ввиду наверное что то типа
    Код (Text):
    1. Select id from (select name from t1 where id = 2)
     
  4. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.794
    Симпатии:
    650
    @Artur_hopf, ТС хочет использовать значение из БД в качестве имени таблицы в запросе.
    --- Добавлено ---
    @FedorSWNet, насколько знаю, такой возможности нет. Используйте отдельный запрос.
     
  5. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.591
    Симпатии:
    360
    @FedorSWNet, погуглите так-же информацию про dynamic sql (динамические запросы)
     
  6. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.076
    Симпатии:
    1.237
    Адрес:
    там-сям
    А может автор имеет в виду полиморфные связи? :) Там должен присуствовать какой-то признак с какой таблицей у данной записи идёт связь. В Laravel для этого по умолчанию используется имя класса, но возможной всякое.
    Вот сколько трактовок.
     
  7. FedorSWNet

    FedorSWNet Новичок

    С нами с:
    6 сен 2019
    Сообщения:
    19
    Симпатии:
    0
    Уважаемые форумчане, извините за неточную формулировку....

    Совершенно верно!!!
    --- Добавлено ---
    Очень жаль, в моем случае сильно бы облегчило ситуацию.
     
  8. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.794
    Симпатии:
    650
    Ну, не знаю. Куча наших сайтов построена на моделях, предполагающих хранение имен (или основ для имен) таблиц в БД. С отдельными запросами все решается довольно просто.

    Можете покопать в сторону «dynamic sql», о чем вам выше написали. Но в этом случае если что-то и получится, то будет значительно сложнее.
     
  9. FedorSWNet

    FedorSWNet Новичок

    С нами с:
    6 сен 2019
    Сообщения:
    19
    Симпатии:
    0
    Всем спасибо за подсказки. С двумя запросами все заработало.