嵌套 sql 缺少右括号,但是在哪里?

Nested sql missing right parenthesis, but where?

我正在尝试创建一个嵌套的-sql,它应该向我展示来自 table1 的所有 ID,它也在 table2 中,但是事情是如果来自 table1 的行得到标志 istask = 1 我希望它成为 select parentid 而不是 ID.

可以有多个ID具有相同的parentid

我知道这只是通过连接完成的,但在 IBM Maximo 的网络界面中,您不能在查询中创建连接,我们无法创建可以在 Maximo 的网络界面中访问的视图

我已经用以下查询进行了测试,但我只会得到缺少右括号的错误。

如果我将这些查询作为自己的查询来尝试,它们会起作用。

测试 1

 SELECT * from table1
    WHERE id in(SELECT refid from table2 WHERE table1.istask = 0 
                OR (SELECT DISTINCT table1.parentid from table1 WHERE
                    id in(select refid from table2 WHERE table1.istask = 1)))

测试 2

SELECT * from table1
    WHERE id in((SELECT refid from table2 WHERE table1.istask = 0 )
                OR (SELECT DISTINCT table1.parentid from table1 WHERE
                    id in(select refid from table2 WHERE table1.istask = 1))))

我猜你正试图这样做:

SELECT * from table1
    WHERE id IN (SELECT refid from table2 WHERE table1.istask = 0)
    OR id IN (SELECT DISTINCT table1.parentid from table1 
        WHERE id IN (select refid from table2 WHERE table1.istask = 1))

在where子句的第二部分,需要重复'id IN'。