我正在尝试执行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。
为了我的一生,我无法解决这个问题。
答案 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