gpt4 book ai didi

php - 从多个相关表中检索值

转载 作者:行者123 更新时间:2023-11-30 23:10:17 25 4
gpt4 key购买 nike

所以,我有一个名为 clients 的表,另一个名为 orders 的表,还有另外两个表,orders_type_aorders_type_b.

我想做的是创建一个返回所有客户列表的查询,并且对于每个客户,它必须根据该客户的 ID 和该客户已经花费的金额返回订单数量。

而且...我不知道该怎么做。我知道这背后的逻辑,但无法找到如何将其转换为 MySQL 查询。

我对 MySQL 有基本的thinkimgoodbutimnot知识,但对于这种情况我真的很困惑。

这是一张图片,可以更好地说明我正在尝试执行的过程: The logic behind the query

有用的额外信息:

  • 每个订单行只有一个类型(即AB)
  • 每个 orders 行可以有多个 orders_type_X(其中 X 是 AB)
  • 订单通过列client_id与客户相关
  • orders_type_X 通过 order_id 列与 orders 相关联

今天通过执行一个查询来检索客户,然后从每个返回的代码中执行另一个查询(使用 php)来检索订单,然后再执行另一个查询来检索值。所以基本上对于从第一个查询返回的每一行,里面都有另外两行。不用说这是一种糟糕的方法,性能很糟糕,这就是我想要更改它的原因。


更新宽度表列:

客户:

编号 |姓名 |电话

订单:

编号 | client_id |日期

orders_type_a:

编号 |订单编号 |项目数 | price_of_single_item

orders_type_b:

编号 |订单编号 | number_of_shoes_11 | number_of_shoes_12 | number_of_shoes_13 | price_of_single_shoe

如需任何额外信息,请询问。

最佳答案

如果我没理解错的话,您正在寻找这样的东西?

select c.*, SUM(oa.value) + SUM(ob.value) as total 
from clients c
inner join orders o on c.order_id = o.id
inner join orders_type_a oa on oa.id = o.order_type_id AND o.type = 'A'
inner join orders_type_b ob on ob.id = o.order_type_id AND o.type = 'B'
group by c.id

我不知道您的实际字段名称,但这会返回每个客户的信息以及一个字段“总计”,其中包含类型 A 和类型 B 的所有订单的值(value)总和。您可能必须调整各种名称以使其正常工作,但这是否让您朝着正确的方向前进?

关于php - 从多个相关表中检索值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20076043/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com