Mysql DISTINCT 和 COUNT 查询
Mysql DISTINCT and COUNT query
我在获取查询输出我想要的方式时遇到问题,
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
但我希望它能带回 distinct item_id 并将数量加在一起,但是当我尝试添加 distinct 并计数时,我最终只返回了一行。
如果您想要对相同项目的数量求和,请尝试 分组 而不是 item_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`
请使用group by子句
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`;
我在获取查询输出我想要的方式时遇到问题,
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
但我希望它能带回 distinct item_id 并将数量加在一起,但是当我尝试添加 distinct 并计数时,我最终只返回了一行。
如果您想要对相同项目的数量求和,请尝试 分组 而不是 item_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`
请使用group by子句
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`;