J'ai 3 tables dans ma base de données: product (id, sku, type, price)
, product_relation (parent_id, child_id)
et product_stock (product_id, quantity, in_stock)
. Il existe des relations possibles entre les produits: Le produit de type X peut être un parent (peut se composer de) à plusieurs produits de type Y (relation conservée dans le tableau product_relation
). Dans les produits DB de type X, la quantité est toujours définie sur 0. Maintenant, voici la chose. Je dois obtenir seulement des produits (sku
et id
) de type X qui sont en stock (in_stock = true
) et au moins un de leurs enfants a quantity > 0
ou in_stock = true
.utilisation correcte des sous-requêtes avec mysql
Je suis coincé là-dessus pendant plusieurs heures. Je ne peux pas faire une bonne requête pour cela. Le plus proche que j'ai atteint est
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'
mais ce n'est pas bon, car de nombreux éléments manquent. Je ne sais pas si cela peut être manipulé par des jointures seulement ou des sous-requêtes ont Aide s'il vous plaît.