Select com Mais de uma tabela

Firebird

04/11/2011

Tenho três tabelas:
TABELA_1 - campo CODIGO integer
TABELA_2 - campo CODIGO integer
TABELA_3 - campo CODIGO integer

Preciso fazer um select das tabelas confrontando o campo CODIGO nas três tabelas. O select tem que trazer os registros que tenham correspondência da TABELA_1 com a TABELA_2 E os registros que tenham correspondência da TABELA_1 com a TABELA_3.

Tentei montar o select com JOIN, mas não tive êxito.

Alguma dica?

FB 2.1 e D2010

Obrigado.

Valdir
Valdir Dill

Valdir Dill

Curtidas 0

Respostas

Wilson Junior

Wilson Junior

04/11/2011

Teste assim
SELECT
  t1.NomeDoCampo,
  t2.NomeDoCampo,
  t3.NomeDoCampo
FROM
  TABELA_1 t1
    LEFT OUTER JOIN TABELA_2 t2 ON (t1.Codigo = t2.Codigo)
    LEFT OUTER JOIN TABELA_3 t3 ON (t1.Codigo = t3.Codigo)


Espero ter colaborado.
GOSTEI 0
Valdir Dill

Valdir Dill

04/11/2011

Teste assim
SELECT
  t1.NomeDoCampo,
  t2.NomeDoCampo,
  t3.NomeDoCampo
FROM
  TABELA_1 t1
    LEFT OUTER JOIN TABELA_2 t2 ON (t1.Codigo = t2.Codigo)
    LEFT OUTER JOIN TABELA_3 t3 ON (t1.Codigo = t3.Codigo)


Espero ter colaborado.


Olá Wilson,

Obrigado pela ajuda, mas não se não fui claro, mas não bem isso que eu precisava. É mais ou menos por aí, mas nesse código acabam sendo listados TODOS os registros de t1, mesmo que não tenham correspondência em t2 ou t3. O que eu queria era listar apenas os registros que estejam em t1 E t2 OU t1 E t3. Se houver ocorrência estiver só em t1, não deve ser listado.

Obrigado.
GOSTEI 0
Emerson Nascimento

Emerson Nascimento

04/11/2011

SELECT
t1.NomeDoCampo,
t2.NomeDoCampo,
t3.NomeDoCampo
FROM
TABELA_1 t1
LEFT JOIN
TABELA_2 t2 ON (t2.Codigo = t1.Codigo)
LEFT JOIN
TABELA_3 t3 ON (t3.Codigo = t1.Codigo)
WHERE
NOT (t2.Codigo is null and t3.Codigo is null)
GOSTEI 0
Valdir Dill

Valdir Dill

04/11/2011

SELECT
t1.NomeDoCampo,
t2.NomeDoCampo,
t3.NomeDoCampo
FROM
TABELA_1 t1
LEFT JOIN
TABELA_2 t2 ON (t2.Codigo = t1.Codigo)
LEFT JOIN
TABELA_3 t3 ON (t3.Codigo = t1.Codigo)
WHERE
NOT (t2.Codigo is null and t3.Codigo is null)


Perfeito. Muitíssimo obrigado.

GOSTEI 0
POSTAR