我有一个表名tbl_section
这个表就像那个
db_secid db_secname db_secdesc db_parent
1 Electrical NULL
2 Mechanical NULL
3 Plumbing NULL
4 Cables 1
5 Lamps 1
6 HDMI 4
我想只选择db_parent=NULL
行的子项。从上表中可以看出结果只有Cables
和Lamps
。
我尝试使用此查询
select
s1.db_secname
from tbl_section as s1
LEFT JOIN tbl_section as s2
ON
s1.db_secid=s2.db_parent
WHERE s2.db_parent IS NULL
但是这个查询给了我一个结果,我不希望这个结果来自这个查询
Mechanical,Plumbing,Lamps,HDMI
如何解决此问题,并且只有父母拥有db_parent = NULL
的孩子?
答案 0 :(得分:2)
只需执行B
,这已经过滤掉没有父的行。此外,您还交换了您的亲子关系:它应该是class ChildOfA extends A implements B {}
A a = new ChildOfA();
System.out.println(a instanceof B); // fine.
,而不是JOIN
:
s1.db_parent = s2.db_secid
答案 1 :(得分:2)
你可以使用内连接
select t1.db_secname
from tbl_section as t1
inner join tbl_section as t2
on t2.db_parent is null and t2.db_secid = t1.db_parent