Pra ser uma consulta correlacionada não precisa ter o EXISTS, basta que tenha referência ao campo da consulta externa na interna.
SELECT Nome > FROM Editora E > WHERE Codigo IN (SELECT Editora > FROM Livro > WHERE Lancamento IS NOT NULL AND > E.CODIGO = 3) > Geralmente quando isso ocorre, usamos o campo externo para comparar com algum valor de um campo interno, no seu exemplo você compara com uma constante, logo seria a mesma coisa (só que abaixo é mais eficiente) que: SELECT Nome FROM Editora E WHERE Codigo IN (SELECT Editora FROM Livro WHERE Lancamento IS NOT NULL) *AND E.CODIGO = 3* Mas só pra deixar mais claro, acho que seu exemplo seria adaptado com subconsulta correlacionada da seguinte forma: SELECT Nome FROM Editora E WHERE Codigo IN (SELECT Editora FROM Livro WHERE Lancamento IS NOT NULL AND *E.CODIGO = Livro.Editora*) E aí um EXISTS cairia muito bem: SELECT Nome FROM Editora E WHERE *EXISTS(SELECT 1* FROM Livro WHERE Lancamento IS NOT NULL AND *E.CODIGO = Livro.Editora*) Deu pra entender? Atenciosamente, -- Matheus de Oliveira 2012/6/22 Jonas Nepomuceno <jona...@gmail.com> > 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 ? > > > > > > > > > > > > > -- > São Paulo Realmente é aquilo que > _______________________________________________ > pgbr-geral mailing list > pgbr-geral@listas.postgresql.org.br > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral >
_______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral