Как использовать в запросе в качестве назания таблицы результат из другого запроса?

Есть таблица
sites
id hostname pages_table_name
1 delgus.com pages

И таблица pages
id route content
1 /news Новости


Я знаю route и host(они уникальны) ,могу ли я получить значения из page одним запросом. Что то похожее на

SELECT  *  FROM (SELECT pages_table_name FROM sites WHERE host='https://delgus.com') as t


Но такой запрос возвращает
pages_table_name
pages


А я хочу получить выборку из pages. Помогите плиз
  • Вопрос задан
  • 32 просмотра
Решения вопроса 1
@magarif
Программист
Тут три решения

0. Если не менять структуру, то пишите хранимую процедуру. https://dev.mysql.com/doc/refman/5.7/en/create-pro...
Внутри неё используйте динамический SQL. https://dev.mysql.com/doc/refman/5.7/en/sql-syntax...

1. Меняйте структуру и join, и не придётся динамическое имя таблицы использовать
Sites
- id
- host

Routers
- id
- siteId
- route
- content

10. Можно название таблицы со страницами сделать как-то так delgus_com_pages. И потом подсовывать это в запрос.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через TM ID
Похожие вопросы