gpt4 book ai didi

php - 根据订单ID获取所有客户付款

转载 作者:行者123 更新时间:2023-11-30 21:49:17 26 4
gpt4 key购买 nike

我想知道是否有人可以帮助我处理这个复杂的 mysql 查询。

我有 3 个表:

表 #1:Customer_Order 有两列 customer_idorder_id
表 #2:Order_Payment 也有 order_id
表 #3:具有 idOrders,这是一个订单 ID。

我想知道是否可以根据 order_id 检索特定客户的所有付款。我只有一个 order_id,但没有 customer_id,根据 order_id,我应该能够检索所有付款,甚至那些尚未支付的。

我是这样做的:

我首先检索已知的顺序

select * from customer_order where order_id = 1351

然后我尝试根据返回的内容构建查询

select * from (    select * from customer_order where order_id = 1351) c1left join     (select op.order_id, customer_id from order_payment op inner join customer_order co on op.order_id = co.order_id    ) c2 on c1.customer_id = c2.customer_id

我也试试

select customer_id from (    select customer_id from `order_payment` inner join `customer_order` on `customer_order`.`order_id` = `order_payment`.`order_id`     where order_payment.order_id=1351    order by `created_at` asc) as sinner join customers on s.customer_id = customers.id

但我只收到一笔订单付款,没有收到未付款的订单。

如果有人能帮助我解决问题,我将不胜感激。

最佳答案

您可以使用 customer_order 加入两次。一次从给定的 order_idcustomer_id,然后第二次获取所有客户的订单。

select op.*
FROM order_payment AS op
JOIN customer_order AS co1 ON co1.order_id = op.order_id
JOIN customer_order AS co2 ON co2.customer_id = co1.customer_id
WHERE co2.order_id = 1351

我认为没有任何理由使用 LEFT JOINorder_payment 中的列应该是外键,因此总会有匹配项。

关于php - 根据订单ID获取所有客户付款,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47981555/

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