Mysql的DISTINCT和COUNT查询
我在获取查询以输出我想要的方式时遇到问题Mysql的DISTINCT和COUNT查询,mysql,count,distinct,Mysql,Count,Distinct,我在获取查询以输出我想要的方式时遇到问题 SELECT `orders`.`item_id`, `products`.`item_code`, `products`.`item_name`, `orders`.`quantity` FROM `orders` JOIN `products` ON `orders`.`item_id` = `products`.`id` JOIN `suppliers` ON `product
SELECT
`orders`.`item_id`,
`products`.`item_code`,
`products`.`item_name`,
`orders`.`quantity`
FROM
`orders`
JOIN `products` ON `orders`.`item_id` = `products`.`id`
JOIN `suppliers` ON `products`.`supplier_ref` = `suppliers`.`supplier_ref`
WHERE
`suppliers`.`id` = 159
AND `orders`.`order_status` = 'NOTED'
这将返回结果:
item_id item_code item_name quantity
1271 RA001G Green Mop Bucket 12L 2
1270 RA001 Blue Mop Bucket 12L 1
1270 RA001 Blue Mop Bucket 12L 1
但是,我希望它将不同的项目id与数量相加带回,但当我尝试添加不同的项目id和计数时,结果只返回了一行。如果要汇总相同项目的数量,请尝试对项目id进行分组。如下所示:
SELECT
`orders`.`item_id`,
`products`.`item_code`,
`products`.`item_name`,
sum(`orders`.`quantity`) as quantity,
FROM
`orders`
JOIN `products` ON `orders`.`item_id` = `products`.`id`
JOIN `suppliers` ON `products`.`supplier_ref` = `suppliers`.`supplier_ref`
WHERE
`suppliers`.`id` = 159
AND `orders`.`order_status` = 'NOTED'
GROUP BY `orders`.`item_id`,
`products`.`item_code`,
`products`.`item_name`
请使用GROUPBY子句
SELECT
`orders`.`item_id`,
`products`.`item_code`,
`products`.`item_name`,
sum(`orders`.`quantity`) as quantity
FROM
`orders`
JOIN `products` ON `orders`.`item_id` = `products`.`id`
JOIN `suppliers` ON `products`.`supplier_ref` = `suppliers`.`supplier_ref`
WHERE
`suppliers`.`id` = 159 AND `orders`.`order_status` = 'NOTED'
group by
`orders`.`item_id`;
然后你应该添加一个
group by
子句。你想看到“1270 RA001 Blue Mop Bucket 12L 2”作为输出吗?非常感谢你,我是按项目id分组的,但当时是在做COUNT()而不是SUM(),这一定是因为我放弃了它