Dúvida conceitual

Estou com dúvidas , sobre alguns conceitos

Eu aprendi o seguinte na faculdade.

Subconsultas não-correlacionadas:


SELECT Nome
       FROM Editora E
       WHERE Codigo IN (SELECT Editora
                                  FROM Livro
                                  WHERE Lancamento IS NOT NULL)

Nome das editoras que já lançaram livros.

Nesse caso, a subconsulta não depende da outra, e é executa de forma
independente,
porém se eu implementar ela no postgres


SELECT Nome
       FROM Editora E
       WHERE Codigo IN (SELECT Editora
                                  FROM Livro
                                  WHERE Lancamento IS NOT NULL AND E.CODIGO = 3)

O E.CODIGO É DA CONSULTA EXTERNA, pelo que aprendi na faculdade isso
não seria possível,
pois nesse caso a consulta interna teria que ser totalmente
independente da consulta externa.

No meu entendimento isso sória possível nas : Subconsultas
correlacionadas: com exists isso seria possível.

Alguém pode me responder essa dúvida ?

Já vi esse tipo de problema acontecer no Oracle tb.

Mas o grande problema é que o banco tenta resolver E.CODIGO e como não encontra no select interno (pois sua tabela não está com nenhum alias E) ele parte para o select externo gerando o problema

Se vc refiser a query assim

SELECT Nome 
   FROM Editora E  
 WHERE Codigo IN (SELECT Editora  
                                FROM Livro L
                              WHERE Lancamento IS NOT NULL 
                                  AND L.CODIGO = 3) 

ficará certo pois o banco não terá mais conflito de tabelas.