2016-02-12 126 views
1

即时通讯有问题获得一个查询输出我怎么想,Mysql的DISTINCT和COUNT查询

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 

,但我想它带回不同的ITEM_ID与数量加在一起如何,当我已经尝试添加不同并计数我最终只有一行返回。

+2

使用组,那么你应该添加一个'组by'条款。 –

+0

你想看到“1270 RA001蓝色拖把桶12L 2”的输出? –

回答

2

如果要总结同一商品的数量,请尝试使用分组 over 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` 
+0

非常感谢你,我是通过item_id进行分组的,但是然后做了COUNT()而不是SUM(),它必须抛弃它 – Ajking11

0

请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`;