![]() |
Связывание значения столбца с именем таблицы
Здравствуйте!
Нужна помощь как связать в запросе значение столбца с таблицей. В таблице items_id_tiket в столбце меняется значение Itemstype, и это значение указывает на таблицу с соответствующими значениями. Помогите с запросом. select x.name, x.serail From items_id_tiket t, (Monitors, Printers) x Where t.Items_id = x.id and t.id = 1 --- Таблица items_id_tiket id Itemstype Items_id 1 Monitor 70 Таблица Monitors id Name Serial 70 Acer 2001 Таблица Printers id Name Serial 70 HP 203 |
Не буду утверждать на 100%, но по-моему это вообще невозможно в рамках одного запроса.
Вообще у вас какая-то странная организация БД. Зачем отдельные таблицы для мониторов и принтеров, если их структура одинакова? Пусть будет одна таблица для всех товаров с дополнительным полем item_type. ID у всех товаров будут уникальны, а если нужно будет выбрать только мониторы, добавите в запрос условие item_type='Monitor'. |
Цитата:
Согласна на использование подзапросов))) |
Rikka,
UNION ALL для выборок с одинаковой структурой... |
Цитата:
|
Цитата:
select trim(concat(u.realname, ' ', u.firstname)) full_name , x.name, x.otherserial, t.itilcategories_id, t.name, t.id, x.id From glpi_tickets t, glpi_users u, glpi_items_tickets it, (SELECT 'computer' name_tbl, id, name, otherserial, locations_id, users_id FROM glpi_computers UNION ALL SELECT 'monitor' name_tbl, id, name, otherserial, locations_id, users_id FROM glpi_monitors UNION ALL SELECT 'peripheral' name_tbl, id, name, otherserial, locations_id, users_id FROM glpi_peripherals UNION ALL SELECT 'phone' name_tbl, id, name, otherserial, locations_id, users_id FROM glpi_phones UNION ALL SELECT 'printer' name_tbl, id, name, otherserial, locations_id, users_id FROM glpi_printers )x Where t.users_id_recipient = u.id and t.date >= CURDATE() and x.name_tbl = it.itemtype and t.itilcategories_id = 9 and t.id = it.tickets_id and it.items_id = x.id and upper(trim(concat(u.realname, ' ', u.firstname))) = ? --- shisik, y-- спасибо за помощь ;) |
Время: 11:21. |
Время: 11:21.
© OSzone.net 2001-