我一直在寻找高低,但找不到我能理解的简单解决方案。
我有这个问题:
select * from table_A
Left Outer Join Table_B
on table_A.common_column = Table_B.common_column
and Table_B.column = (select max(id) from table_C where value = :BINDVARIABLE) /*Static Number*/
我一直收到以下错误: ORA-01799:列可能不是外部连接到子查询
任何帮助将不胜感激
答案 0 :(得分:0)
您正在尝试使用应在WHERE子句中的条件作为两个表之间的连接。将子查询移动到WHERE子句,然后您需要在table_A和table_B之间添加连接,无论它们之间是什么公共列,如下所示:
SELECT *
FROM table_A
LEFT OUTER JOIN Table_B ON table_A.common_column = table_B.common_column
WHERE Table_B.column = (SELECT MAX(id) FROM table_C WHERE value = :BINDVARIABLE)