【问题标题】:Subquery in a left outer join左外连接中的子查询
【发布时间】:2013-08-17 14:56:33
【问题描述】:

我一直在寻找高低,但找不到我能理解的简单解决方案。

我有这个问题:

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: 列不能外连接到子查询

任何帮助将不胜感激

【问题讨论】:

    标签: subquery outer-join


    【解决方案1】:

    您正在尝试使用应该在 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) 
    

    【讨论】:

    • 我明白这一点,但我相信我的问题比这更复杂。我已经稍微编辑了我的问题
    猜你喜欢
    • 1970-01-01
    • 2016-10-18
    • 1970-01-01
    • 1970-01-01
    • 2016-01-28
    • 2019-05-24
    • 2018-11-01
    • 1970-01-01
    • 2016-02-19
    相关资源
    最近更新 更多