Php Mysql查询和组?
我有这个例子 订单Php Mysql查询和组?,php,mysql,sum,Php,Mysql,Sum,我有这个例子 订单 订单号 订单\物品\标识 订单\发票\标识 订单\客户\标识 订单数量 和行示例 668322915 668322930 我确实怀疑这样的事情 SELECT * FROM orders WHERE order_invoice_id = 1 在循环中,我得到了所有简单的结果,订单商品id,订单数量,但我得到了两个结果, 因为order\u inovice\u id是相同的 结果1 订购物品编号8 订单数量15 结果2 订购物品编号8 订单数量30 我只需要得到一个结果
- 订单号
- 订单\物品\标识
- 订单\发票\标识
- 订单\客户\标识
- 订单数量
- 668322915
- 668322930
SELECT * FROM orders WHERE order_invoice_id = 1
在循环中,我得到了所有简单的结果,订单商品id,订单数量,但我得到了两个结果,
因为order\u inovice\u id是相同的
结果1
订购物品编号8
订单数量15
结果2
订购物品编号8
订单数量30
我只需要得到一个结果,我可以根据订单\文章\ id对结果进行分组和计数
这就是我需要的结果
结果
订购物品编号8
订单数量45您必须使用具有总和聚合功能的分组查询:
SELECT
order_article_id,
SUM(qty) as sum_qty
FROM
orders
WHERE
order_invoice_id=1
GROUP BY
order_article_id
尝试此操作,更改where条件以适合数据
SELECT order_article_id , SUM(order_qty) as order_qty
FROM orders WHERE order_invoice_id = 32
GROUP BY order_article_id
结果
| ORDER_ARTICLE_ID | ORDER_QTY |
|------------------|-----------|
| 8 | 45 |
样本数据
CREATE TABLE orders
(`orders_id` int, `order_article_id` int, `order_invoice_id` int, `order_customer_id` int, `order_qty` int)
;
INSERT INTO orders
(`orders_id`, `order_article_id`, `order_invoice_id`, `order_customer_id`, `order_qty`)
VALUES
(66, 8, 32, 29, 15),
(66, 8, 32, 29, 30)
;
Thsi不工作also@Gorostas你有什么错误?您是否得到错误的结果?请定义“不工作”结果或错误是什么?SQL语法异常复杂simple@Gorostas我的答案已编辑,您需要确保返回数据的位置
SELECT order_id, SUM(order_qty) as 'Total Quantity'
FROM orders
WHERE order_article_id = 8
// where order_article_id in (1,2,3) if you have more id's and just want those
GROUP by order_article_id