我有这3个表在我的DB: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
)的X型产品(sku
和id
),并且他们的至少一个子女有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'
但它不好,因为很多项目都没有。我不知道这是否可以通过连接处理,或子查询有帮助请致电 。