Mysql 如何对另一个表中没有匹配项的行求和?
我将Mysql 如何对另一个表中没有匹配项的行求和?,mysql,sql,Mysql,Sql,我将tbl\u交易详细信息和tbl\u收到的订单详细信息的数量相加。我的问题是我无法获取另一个表中没有匹配项的行。我想得到5,其中接收的\u详细信息\u id等于3。这是我的查询和表格 当我执行这个查询时 SELECT SUM(r.transact + f.received) Total FROM (SELECT received_order_details_id, SUM(quantity) transact FROM tbl_transaction_details GROUP
tbl\u交易详细信息
和tbl\u收到的订单详细信息
的数量相加。我的问题是我无法获取另一个表中没有匹配项的行。我想得到5,其中接收的\u详细信息\u id
等于3。这是我的查询和表格
当我执行这个查询时
SELECT
SUM(r.transact + f.received) Total
FROM
(SELECT received_order_details_id, SUM(quantity) transact
FROM
tbl_transaction_details
GROUP BY
tbl_transaction_details.received_order_details_id) r
LEFT JOIN
(SELECT received_order_details_id, SUM(quantity) received
FROM
tbl_received_order_details
GROUP BY
tbl_received_order_details.received_order_details_id) f
ON
r.received_order_details_id = f.received_order_details_id
它产生结果
Total
92
我希望这一切发生
Total
97
如果您只需要两个表中所有行的总数量,我建议在此处使用union查询:
SELECT SUM(qty) AS Total
FROM
(
SELECT qty FROM tbl_transaction_details
UNION ALL
SELECT qty FROM tbl_received_order_details
) t;
您当前的方法没有给出您期望的结果,因为并非从每个表中收到的每个的\u details\u id
都与另一个表中的一个匹配
请注意,您也可以只求和:
SELECT
(SELECT SUM(qty) FROM tbl_transaction_details) +
(SELECT SUM(qty) FROM tbl_received_order_details) AS Total;
如果您只需要两个表中所有行的总数量,我建议在此处使用union查询:
SELECT SUM(qty) AS Total
FROM
(
SELECT qty FROM tbl_transaction_details
UNION ALL
SELECT qty FROM tbl_received_order_details
) t;
您当前的方法没有给出您期望的结果,因为并非从每个表中收到的每个的\u details\u id
都与另一个表中的一个匹配
请注意,您也可以只求和:
SELECT
(SELECT SUM(qty) FROM tbl_transaction_details) +
(SELECT SUM(qty) FROM tbl_received_order_details) AS Total;
你回复得更快,我会删除我的:-)你回复得更快,我会删除我的:-)