gpt4 book ai didi

MySql - 从一个表的两组记录中获取总数

转载 作者:行者123 更新时间:2023-11-30 21:50:49 25 4
gpt4 key购买 nike

<分区>

我使用的是 Mysql 5.5 版。我有两个表 - 产品、订单。

CREATE TABLE `product` (
`id` int(11) NOT NULL,
`name` varchar(45) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `ordr` (
`id` int(11) NOT NULL,
`product_id` varchar(45) DEFAULT NULL,
`status` varchar(45) DEFAULT NULL,
`qty` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

这是它们的填充方式 -

insert into product values (20, 'pen');

insert into ordr values (100, 20, 'queue', 5);
insert into ordr values (110, 20, 'queue', 5);
insert into ordr values (120, 20, 'pending', 10);
insert into ordr values (130, 20, 'pending', 10);
insert into ordr values (140, 20, 'pending', 10);

我想获取处于两种不同状态的产品的总数。对于上述数据的测试数据,我希望看到队列数量为 10,等待数量为 30。

当我运行时

select p.name, sum(o.qty) as queue_qty, sum(o2.qty) as pending_qty
from product p
left outer join ordr o on o.product_id = p.id and o.status = 'queue'
left outer join ordr o2 on o2.product_id = p.id and o2.status = 'pending'
where p.id = 20;

我明白了

name - pen
queue_qty - 30
pending_qty - 60

有人可以帮我修复这个 SQL 吗?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com