0
, например: У меня 4 таблицы: таблицы 1: ПунктMySQL союз проблемы с вычитанием
item_id name quantity
==========================
1 a 10
2 b 15
таблица 2: дополнительный
add_id name quantity item_id
===================================
1 c 5 1
таблица 3: item_out (это будет вычитать пункт количество)
item_id quantity
==========================
1 10
2 5
стол 4: дополнительный_у т (это будет вычитать дополнительное количество)
additional_id quantity
==========================
1 5
Мой вопрос: что MySQL-запрос я должен дать, чтобы получить эти результаты?
item_ id quantity additional_id additinal_quantity
=================================================
1 5 1 0
2 15
потому что я использую MySQL код запроса, как:
SELECT item_id, SUM(quantity - IFNULL(number,0)), additional_id, SUM(additional_quantity - IFNULL(additional_number,0))
FROM(
SELECT a.item_id, a.quantity, b.additional_id, b.quantity AS additional_quantity, NULL AS number, NULL AS additional_number
FROM table_1 a JOIN table_2 b ON some condition
UNION
SELECT NULL AS item_id , NULL AS quantity,... a.quantity AS number, b.quantity AS additional_number
FROM table_3 a JOIN table_4 b ON condition
)AS T
и заканчивается только один ряд из-за SUM в первом выборе.
Вы просто не хватает 'GROUP BY item_id', не так ли? – Barmar
Как все эти таблицы связаны друг с другом? Почему у вас есть «NULL AS item_id» во втором запросе союза? Вычитаются ли эти количества из всех предметов? – Barmar
Я подозреваю, что вы должны использовать 'LEFT JOIN' и' CROSS JOIN', а не 'UNION'. – Barmar