mySQLi检查parent_category是否匹配category_id = 0

时间:2018-07-19 01:44:45

标签: mysql

我正在尝试执行1条查询,我可以轻松地将其多次执行,但这并不是最佳选择。我有一张类似的桌子:

    category_id |  parent_category | status
    1           |  0               |  0
    2           |  0               |  1
    3           |  1               |  0
    4           |  2               |  0

到目前为止,我的查询看起来像这样

    SELECT
    c.slug
    , c.parent_category
    FROM categories c
    INNER JOIN products p
    ON (p.category_id = c.category_id)
    WHERE
    c.status = '0'
    AND (SELECT count(p.product_id)>0)
    AND p.product
    GROUP BY p.category_id

现在,这将向我显示category_id 1、3、4,但是4s的父级(2)的状态为1。我不希望显示4,所以我试图提出一个说明parent_categories category_id = 0表示是否为1,否则为1。

为了我的一生,我无法解决这个问题。

1 个答案:

答案 0 :(得分:0)

您需要将表与自身连接起来以获取有关父类别的信息。

SELECT c.slug, c.parent_category
FROM categories c
JOIN categories parent ON c.parent_category = parent.category_id
JOIN products p ON p.category_id = c.category_id
WHERE c.status = 0 and parent.status = 0