我正在使用面板来显示来自我们电子商务网站的所有订单,并且我设置订单的方式是每个订单都有一行引用客户ID。
我正在努力展示我们后端的所有未结订单,但是如果订单ID是18,那么行显示多行(如果订单号为18,订单有2个商品,则订购2行)所有订单号都是18)。
我将在下方添加一些屏幕截图,以便您了解发生了什么。
这是我的sql
语句,用于显示所有未结订单:
function GetAllOpenOrders (){
global $conn;
$sql = "SELECT * FROM customer_orders LEFT JOIN ordered_products ON ordered_products.custOrderID=customer_orders.custOrderID WHERE customer_orders.orderOpen=1";
return $result = $conn->query($sql);
}
再次,我希望combine
多个产品的订单,并在未结订单屏幕中显示总价。
答案 0 :(得分:1)
您需要汇总查询才能显示总计。类似的东西:
SELECT sum(prod.totalPrice) as TotalPrice
FROM customer_orders
LEFT JOIN ordered_products ON ordered_products.custOrderID=customer_orders.custOrderID
WHERE customer_orders.orderOpen=1
group by customer_orders.custOrderID
我没有您的数据库来测试该查询,但这应该指向正确的方向。
答案 1 :(得分:0)
您需要一个子查询,您可以在其中汇总订单总数,然后进行汇总。您也无法在查询中添加“产品ID”,否则根据定义将其分解为每个订购产品的行。
例如
select
customer_order_id,
sum(product_total_price) as order_total
from
(select
customer_order_id,
product_id,
product_total_price
from table
group by 1,2,3)
group by 1
如果您希望显示1行中订购的产品的名称,我建议使用CONCAT函数作为产品名称(所以它都在一个字段中),然后您将获得总共1行