Задавайте вопросы, мы ответим
Вы не зашли.
Скажите есть ли такая возможность в MySQL?
А сейчас немного поясню. Имеется таблица Index в которой хранятся данные следующего формата:
Поле table - название таблиц в этой же базе (их произвольное количество)
Поле item_id - идентификатор элемента в таблице с именем указанным в поле table
Поле alphabet - первая буква имени элемента (поле name элемента с идентификатором item_id таблицы table)
все таблицы указанные в поле table имеют какие-то одинаковые поля (заранее известные, например name и description ) и какие то свои (произвольные).
Можно ли получить одним запросом выборку всех данных из всех таблиц (поле table), где в таблице Index поле alphabet равно например букве A.
Неактивен
Можно, но не делайте так
Например, используя PREPARE создать строку, которая будет делать UNION
из соответствующих таблиц.
Неактивен
У меня получилось двумя запросами. Первым я выбираю нужные таблицы, потом средствами php создаю текст запроса по этим таблицам ,сцепляя их через UNION и выполняю его.
Неактивен
Вот, потренироваться — хорошо, а в продакшне так делать не стоит
Неактивен
т.е. даже решением из двух запросов тоже считается плохим?
а как же тогда быть если по каждой таблице делать отдельный запрос
это же больше нагрузки на БД, нежели одним запросом через UNION?
Неактивен
Любые обобщенные решения, как правило, работают хуже, чем частные
(и по производительности, и по правильности работы). Если Вы пытаетесь
засунуть разнородные данные в одну базу и обращаться с ними, как просто
с набором разнородных данных, то имеет смысл сделать честный hash-value,
и не притворяться, что у Вас реляционная база. Это будет куда проще для
понимания.
Неактивен