私のDBには、この3つのテーブルがあります。product (id, sku, type, price)
、product_relation (parent_id, child_id)
、product_stock (product_id, quantity, in_stock)
です。製品間には可能な関係があります。タイプXの製品は、タイプYの複数の製品(テーブルはproduct_relation
のテーブルに保持されています)の親(できます)からなることができます。タイプXのDB製品では、常に数量が0に設定されています。在庫があるタイプ(in_stock = true
)の商品(sku
およびid
)、少なくとも1人の子供がquantity > 0
またはin_stock = true
の商品のみを入手する必要があります。mysqlでサブクエリを正しく使用する
私は数時間それに固執しています。私はこれについて良い質問をすることはできません。私が達成した最も近いものは
SELECT a.`id`, a.`sku` FROM `product` AS a
INNER JOIN `product_stock` AS b
ON a.`id` = b.`product_id`
INNER JOIN `product_relation` AS c
ON c.`child_id` = b.`product_id`
WHERE b.`in_stock` = 1 AND a.`type` = 'X'
ですが、多くのアイテムが見つからないので、それは良くありません。私はこれがジョインだけで処理できるかサブクエリが ヘルプを持っているかわかりません。