这就是我现在正在做的事情:
SELECT
p.id as productId,
p. product_name,
pi.product_image
FROM
Products AS p
LEFT JOIN
ProductImages AS pi ON p.id = pi.productId
WHERE
p.categoryId IN (SELECT id
FROM
(SELECT *
FROM Categories
ORDER BY parentId, id) Categories,
(SELECT @pv := ${req.query.categoryId}) initialisation
WHERE find_in_set(parentId, @pv) > 0 AND @pv := concat(@pv, ',', id)
ORDER BY id)
ORDER BY
p.id DESC
我正在IN运算符内提供子查询。该子查询单独运行,为我提供了我提供的主要类别的所有子类别ID。但是当我整体运行时,我没有任何结果。
我这样做正确吗?
注意:产品表/类别表随附的屏幕截图
基本上,在产品表中有一个类别列,用于告诉该产品属于哪个类别。可以说,从上面的屏幕快照中,我提供了类别ID为1的查询,即“ Electronics and Mobiles”,因此在IN运算符内的where子句中,我尝试提供所有后代的“ Electronics and Mobiles”类别ID。 / p>