我有此表类别
|catId |catName|catParentID|catType|
-------------------------------------
|1 |cat1 |null |6 |
|2 |cat2 |null |9 |
|3 |cat3 |1 |6 |
|4 |cat4 |2 |9 |
|5 |cat5 |1 |6 |
|6 |cat6 |3 |8 |
父级与子类别位于同一表中,只有它们没有父级。
我需要获取其父类型为6的所有子类别。
上面示例的输出应如下所示-
cat3
cat5
答案 0 :(得分:0)
鉴于您的数据结构,这似乎可行:
select c.*
from categories c
where c.catParentID is not null and -- has a parent
c.catType = 6;
但是,这可能不是一个通用的解决方案。因此,您可以使用自联接:
select c.*
from categories c join
categories cp
on c.catParentID = cp.catID
where cp.catType = 6;
答案 1 :(得分:0)
SELECT *
FROM categories
WHERE cattype = 6
AND catparentid IS NOT NULL
答案 2 :(得分:0)
最简单的方法是
SELECT * FORM categories WHERE catParentId ='1' AND catType ='6'
答案 3 :(得分:0)
尝试一下...(根据您的期望输出)
SELECT t1.*
FROM tablename t1
LEFT JOIN tablename t2 ON t1.catparentid = t2.catid
WHERE t2.cattype = 6
AND t2.catparentid IS NULL