Her*_*den 7 mysql sum left-join
我有第一个名为"orders"的表和第二个名为"details"的表
orders :
order_id
1
2
3
details :
id | order_id | qty
1 | 1 | 2
2 | 1 | 3
Run Code Online (Sandbox Code Playgroud)
我如何显示如下?
order_id | total
1 | 5
2 | 0
3 | 0
Run Code Online (Sandbox Code Playgroud)
我试过这个查询但是没有用:
SELECT *, SUM(qty) AS total
FROM order o
LEFT JOIN details d
ON o.order_id = d.order_id
Run Code Online (Sandbox Code Playgroud)
hel*_*ode 13
试试这个:
SELECT o.order_id, IFNULL(SUM(d.qty),0) AS total
FROM orders o
LEFT JOIN details d ON o.order_id = d.order_id
GROUP BY order_id
Run Code Online (Sandbox Code Playgroud)
这将做你要求的.如果没有明细记录的订单,它将用0替换空值.
SELECT o.order_id,
coalesce(sum(d.qty), 0)
from orders o
left join details d
on o.order_id = d.order_id
group by o.order_id;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8644 次 |
| 最近记录: |