им с небольшой проблемой синтаксиса в моем запросе (упрощенный):Oracle Join Using + подзапросы: ORA-00904 строка: неверный идентификатор
select *
from table1 t1
inner join table2 t2 using (pk1)
inner join table3 t3 using (pk2)
where not exists (select1 from table4 t4 where t4.pk1 = t1.pk1)
С помощью «используя» ключевое слово, оракул оленьей кожи позволяет идентификатор таблицы в перед именем столбца (например: t1.pk1, только pk1 могут быть использованы)
Если я пишу:
select *
from table1 t1
inner join table2 t2 using (pk1)
inner join table3 t3 using (pk2)
where not exists (select1 from table4 t4 where t4.pk1 = pk1)
Этот запрос не даст ожидаемых результатов.
Но так как я использую подзапрос «существует», как я могу присоединиться к этому подзапросу?
Конечно, я полагаю, что я мог бы написать этот запрос другим способом и избежать существующего, или я НЕ мог использовать «использование».
Но возможно ли «соединение/использование» в сочетании с подзапросом в предложении where?
Edit: с помощью Oracle 10gR2
Действительно, это единственный способ сделать это, не уклоняясь ИСПОЛЬЗОВАНИЕМ полностью (лично я предпочитаю придерживаться JOIN..ON, а не использовать). –