Select distinct A.col1, B.col2, col3
from A inner join B on A.id = B.id
and B.id in
(select distinct col2 from B where ..... )
PostgreSQL的plpgsql解析器不喜欢括号子查询中的不合格“col2”。由于子查询中只提到了一个表,因此解析器不会产生歧义吗?
答案 0 :(得分:2)
没有。外部查询列也可以在子查询中使用,否则您无法将内部和外部查询绑定在一起。这是一件容易忘记的事情,如果你没想到的话可以把你赶出去。
答案 1 :(得分:1)
您显示的SQL查询只会起作用。
既然你提到了 plpgsql ,那么我在黑暗中的镜头就是你只显示实际上是plpgsql函数的片段,并且你遇到了与函数参数的命名冲突,这些参数是可见的函数体中的任何地方(动态SQL除外)。