此statement
中有什么问题可以解决吗?
SELECT i.head, i.subhead, c.category
from items i,
category c
WHERE c.category = i.category
AND (i.subhead IN (SELECT i.head
FROM items i,
category c
WHERE c.category = i.category) or i.subhead = 0)
我想得到的是subhead
应该在head
中,这样我才能检查此subhead
是否有parent
而不显示它。如果subhead
是0
,则表示它没有父母,因此显示它。可以吗?还是应该将其替换为join
或类似的东西?我有SELECT
的结果集,所以我要添加一个AND
,其表的结果与检查条件相同。
答案 0 :(得分:1)
如果DBMS支持,也许您可以使用CTE功能(公用表表达式)。
{{1}}
答案 1 :(得分:0)
您可以在下面尝试-
SELECT i.head, i.subhead, c.category
from items i join category c
on c.category = i.category
where i.subhead IN (SELECT i.head
FROM items i join category c on c.category = i.category)
or i.subhead = 0