php - 如何从表中获取不同的数据,然后加入其他表并取 2 列的总和
问题描述
我有两张表,一张包含我的订单详细信息,另一张包含产品详细信息。我想订购不同的产品,它们的 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
) 组成。productid 3、3、2 下是productids,数量下是10、10、11 等,价格下是:64、64、396 等。
表产品表有(serial,name,price,picture)
。我想要的是显示 id 为 3 和 2 的产品,然后计算每个产品的数量总和,并计算每个产品的价格总和。实际上这是一个电子商务项目。用户登录查看他的订单。
解决方案
尝试下一个查询,首先您必须将产品与 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();
您可以在下一个链接上查看查询的工作示例:
推荐阅读
- spring - 高并发下的 JmsTemplate 调用延迟
- java - 使用相同的自动生成 ID
- ios - UIRefreshControl endRefresh 在启用大标题时跳转
- svn - 是否可以列出 Tortoise SVN 自动解决冲突的所有文件?
- python - 升级到最新的 selenium 并且不再在 python 中工作
- ios - 确定资产是否需要在内存中重新缓存
- python - 如何删除数组的最后一个元素并释放那部分内存?
- r - NARDL 包中的 plotmplier
- swift - 斯威夫特:我可以有一个从协议继承并约束它的协议吗?
- vector - ARM 如何找到我重定位的向量表?