嵌套 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'。
我正在尝试创建一个嵌套的-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'。