Select语句中的Select语句是这种正确方法

时间:2019-05-10 07:45:26

标签: sql

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而不显示它。如果subhead0,则表示它没有父母,因此显示它。可以吗?还是应该将其替换为join或类似的东西?我有SELECT的结果集,所以我要添加一个AND,其表的结果与检查条件相同。

2 个答案:

答案 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