Список основных продуктов из нескольких таблиц с одинаковыми именами столбцов - PullRequest
0 голосов
/ 03 мая 2018

У меня довольно много таблиц с информацией о продукте. Столбцы в каждой таблице, из которых я извлекаю данные в этом конкретном запросе, имеют одинаковые имена столбцов. Я пытался сделать это через UNION ALL, но по какой-то причине он выдает ошибку, в которой говорится, что не объект, но все имена столбцов верны.

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

Мне не нужно использовать union, если есть лучший метод.

Все таблицы совместно используют данные по Product_Categories и Product_Sub_Category.

Единственное, что уникально для каждой таблицы, это id и номер_партии.

$product_query = $db1q->query("
SELECT f.id,f.part_number,f.cat,f.subcat,f.table_name FROM
(
SELECT t.id,t.part_number,psc.name as subcat,c.name as cat, c.table_name FROM Steel_Strapping as t JOIN Product_Sub_Category as psc ON t.subcat = psc.id JOIN Product_Categories as c ON psc.category = c.id ORDER BY c.sort_order,psc.sort_order,t.sort_order
UNION ALL
SELECT t.id,t.part_number,psc.name as subcat,c.name as cat, c.table_name FROM Product as t JOIN Product_Sub_Category as psc ON t.subcat = psc.id JOIN Product_Categories as c ON psc.category = c.id ORDER BY c.sort_order,psc.sort_order,t.sort_order
) f");

Мой конечный результат - один полный список всех продуктов, имеющих имена столбцов. Пример: $ result [‘part_number’] извлекает номера деталей из ВСЕХ таблиц, перечисленных в объединении.

Буду признателен за любую помощь.

1 Ответ

0 голосов
/ 03 мая 2018

Я нашел решение, играя с кодом. Мне пришлось добавить круглые скобки (выбрать ...) UNION JOIN (выбрать ...) внутри родительского оператора выбора

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