У меня довольно много таблиц с информацией о продукте. Столбцы в каждой таблице, из которых я извлекаю данные в этом конкретном запросе, имеют одинаковые имена столбцов. Я пытался сделать это через 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’] извлекает номера деталей из ВСЕХ таблиц, перечисленных в объединении.
Буду признателен за любую помощь.