如何从表中获取不同的数据,然后加入其他表并获取2列的总和

问题描述 投票:0回答:1

我有两个表,一个表包含我的订单详细信息,另一个表包含产品详细信息。我想要订购不同的产品,他们的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的不同,以及我需要与数量和价格总和相同的订单总和将相同产品加入另一个名为products的表中,以根据存储在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的产品,然后取每种产品的数量总和,并采用每种产品的价格总和。实际上这是一个ecomerce项目。用户登录查看订单。

php mysql codeigniter-3
1个回答
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();

您可以在下一个链接上查看查询的工作示例:

http://sqlfiddle.com/#!9/c2a1b0/1

© www.soinside.com 2019 - 2024. All rights reserved.