2013-08-15 4 views
1

Я искал высоко и низко, но не могу найти простое решение, которое я могу понять.Подзапрос в левом внешнем соединении

У меня есть этот запрос:

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

Вы пытаетесь использовать условие, которое должно быть в предложении 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) 
+0

Я понимаю, что, но я полагаю, что моя проблема является более сложной, чем это. Я немного изменил свой вопрос –

Смежные вопросы