我正在尝试创建一个嵌套的sql,以便向我显示来自ID
的所有table1
同样位于table2
,但问题是如果来自table1
istask = 1
得到了标记parentid
我希望它选择ID
而不是ID
。
可以有多个parentid
具有相同的 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)))
我知道这只是通过连接完成的,但在IBM Maximo的Web界面中,您不能在查询中创建连接,我们无法创建可在Maximo的Web界面中访问的视图
我已经使用以下查询进行了测试,但我只会得到缺少的右括号错误。
如果我尝试将查询作为自己的查询,他们就可以工作。
测试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
osgi.ds
答案 0 :(得分: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'。