当与主要类别一起提供时,我希望获得其所有子类别的产品

时间:2019-05-15 21:21:43

标签: mysql hierarchical-data

category Table

product table

这就是我现在正在做的事情:

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>

0 个答案:

没有答案