誰かがこの複雑なmysqlクエリで私を助けることができたのだろうかと思います。注文IDに基づいてすべての顧客のお支払いを取得
I 3つのテーブルを有する:
テーブル#1:Customer_Order
二つの列customer_id
とorder_id
テーブル#2を有する:Orders
あるid
を有する:Order_Payment
をもorder_id
テーブル#3を有しています注文ID。
order_id
に基づいて、特定の顧客からのすべてのお支払いを取得できる場合は、私はさまよっていました。私はorder_id
しか持っていませんが、私はcustomer_id
を持っておらず、order_id
に基づいて、私はすべての支払い、まだ支払われていないものさえも取り出せるはずです。
これは、私はそれを行う方法です。
私が最初に私が
select * from ( select * from customer_order where order_id = 1351 ) c1 left 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 * from customer_order where order_id = 1351
を知られている順序を取得します試してみてください
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 s inner join customers on s.customer_id = customers.id
しかし、私はちょうど1つの注文の支払いをしていないものを支払っていない。
誰かが問題を解決するのに役立つと感謝します。このような
どのように出力を見たいですか? –
私はまっすぐなSQLクエリをスキップし、代わりにLaravelのEloquentとリレーションシップを利用します。 – aynber
https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very-simple-sql-クエリ – Strawberry