次の問合せは、特定の注文に複数の製品が含まれている場合でも、各注文に対して1つの製品を含むセットとなります。SQL:ANDとANDを組み合わせた場合
select orders. *, products. *
from `orders`
inner join `products`
where orders.customer_id = " . $customer_id . "
and orders.order_processed > 0
and products.product_id in (orders.products)
(注文商品は69,74,35,21のような文字列です)。
何度も書き直しを試みましたが、目的の結果が得られませんでした。 誰が正しい方向に向けることができますか?ご協力ありがとうございました。
どのようなrdbmsを使用しますか?あなたの '内部結合 'に' on'ステートメントがありません。 'in 'の括弧の間には、ハードコードされた値または' select'ステートメントが必要です。 – HoneyBadger
データ構造を修正してください。 'OrderProducts'テーブルが必要です。コンマ区切りのリストは、そのリストを格納するための間違った方法です。 –
あなたの内部がordersテーブルとproductsテーブルに共通のIDを使用して結合していれば、それはどちらにも存在する値だけを持ちます。 – dbajtr