Присоединение к таблице, хранящейся в столбце результатов - PullRequest
0 голосов
/ 14 апреля 2011

Я хочу попытаться сохранить это как один запрос и не использовать PHP, но это оказывается сложным.

У меня есть таблица, называемая приложениями, в которой хранятся все приложения и некоторая базовая информация о них.Затем у меня есть таблица со всеми типами приложений, и эта таблица содержит ссылку на другую таблицу, в которой хранятся более конкретные данные о конкретном типе рассматриваемого приложения.

select applications.id as appid, applications.category, type.title as type, type.id as tid, type.valuefld, type.tablename
from applications
left join type on applications.typeid=type.id
left join department on type.deptid=department.id
where not isnull(work_cat)
and  work_cat != ''
and applications.deleted=0
and datei between '10-04-14' and '11-04-14'
order by type, work_cat

Теперь, встарая версия, есть еще один запрос на каждый результат.Более сотни результатов ... это отстой.

Это запрос, который я хотел бы интегрировать, чтобы я мог получить все данные в одной строке результатов.(Старый - это ASP, я переписываю его на PHP)

query = "select sum("&adors.fields("valuefld")&") as cost, description from "&adors.fields("tablename")&" where appid = '"&adors.fields("tablename")&"'"

Подготовленные операторы, насколько я знаю, являются лучшим решением, но пока они не подходят.

1 Ответ

0 голосов
/ 14 апреля 2011

Вы не можете сделать это с простым запросом SQL - вам нужно иметь определенный набор таблиц, на которых основан ваш запрос.Тот факт, что ваша текущая реализация запрашивает из какой-либо таблицы имя tablename из первого набора результатов, означает, что для получения всего этого в одном запросе вам придется реструктурировать ваши данные.Вы должны знать, из каких таблиц вы запрашиваете, а не динамически.

Если причиной этих разных таблиц является различная информация, хранимая в каждой из них, требующих разных структур записей (столбцов), вы можете посмотреть в хранилище пар ключ / значение в большой таблице.Как только вы объединяете динамически именованные в одно место, вы можете объединить два запроса вместе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...