我有两个表,一个表包含我的订单详细信息,另一个表包含产品详细信息。我想订购不同的产品,它们的ID以及订购的相同产品和价格的总和
$query = $this->db->query('SELECT
distinct("productid,picture"),SUM(quantity) as `quantity`,SUM(price) as
`amount` FROM `order_details` LEFT OUTER JOIN `products` ON
`products.serial`=`order_details.productid` where `order_details.user_id` =
`$data[results]`');
return $query->result();
上面是我使用的查询,如果用户多次订购产品,则意味着我想从表order_details中获得产品及其ID的区别,以及我需要将相同订单的总和作为数量和同一产品的价格总和,并将其与另一个名为product的表结合起来,以基于order_details表中存储的productid获得产品名称
表格详细信息:
我的 order_details 表由(user_id,productid,quantity,price
组成。
在产品编号3,3,2下是产品编号,在数量10,10,11等下,并且在价格下:64,64,396等。
表产品表具有(serial,name,price,picture)
。
我想要的是显示ID为3和2的产品,然后取每个产品的数量之和,还取每个产品的价格之和。实际上这是一个生态商业项目。用户登录以查看其订单。
答案 0 :(得分:0)
尝试下一个查询,首先,您必须内部加入具有order_details的产品,这样您就可以丢弃所有从未订购的产品。其次,您将产品的属性归类,然后对这些组使用聚合方法。
$query = $this->db->query(
'SELECT
p.serial,
p.picture,
p.name,
SUM(o.quantity) AS total_ordered_quantity,
SUM(o.price) AS total_amount
FROM
products AS p
INNER JOIN
order_details AS o ON o.productid = p.serial
WHERE
o.user_id = $the_user_id
GROUP BY
p.serial, p.picture, p.name'
);
return $query->result();
您可以在下一个链接上查看查询的工作示例: