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_ou噸(這將減去額外的數量)
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
,並在第一選擇只有1個是因爲SUM的行結束。
你只是缺少'GROUP BY item_id',不是嗎? – Barmar
所有這些表格如何相互關聯?爲什麼在union的第二個查詢中有'NULL AS item_id'?這些數量是從所有項目中減去的嗎? – Barmar
我懷疑你應該使用'LEFT JOIN'和'CROSS JOIN',而不是'UNION'。 – Barmar