Uma Unica Query em multiplas tabelas

1 resposta
L

Boas pessoal !

Estou com algumas dificuldades em construir uma query que retira informação de tres (3) tabelas.

O senario é o seguinte:

eu ja consigo retirar informação de duas tabelas atraves da opção inner join da seguinte forma :

select campo1, campo2, campo3, campo4, campo5,  t2campo6 from  tab1 inner join tab2 on (tab1.campo1 = tab2.t2campo6) where campo1 = ? and campo2 = ? and campo3 = ? and campo4 = ?  ";

O meu problema é o seguinte: Posso acrescentar mais uma opção que me permita retirar informação de outra tabela “tab3” nesta mesma query ?

E essa informação que quero retirar desta outra tabela tem uma relação de 3 campos chaves com a tab1 mas nao tem nada em comun com a tab2

ou seja, os dados que quero retirar da tab3 sao os que tem como chaves os campos : campo1, campo2, campo3 e campo4, da tabela tab1.

e os dados que quero retirar da tab2 sao os que tem como chaves os campos : campo1 da tabela tab1

como posso construir uma query para satisfazer esta necessidade ?

Obrigado desde ja !

1 Resposta

J

Acho que é isso:

SELECT Tab1.campo1, Tab2.campo1, Tab3.campo1
FROM (Tab2 INNER JOIN Tab1 ON Tab2.campo1 = Tab1.campo1) 
INNER JOIN Tab3 ON (Tab1.campo4 = Tab3.campo4) AND (Tab1.campo3 = Tab3.campo3) AND (Tab1.campo2 = Tab3.campo2) 
AND (Tab1.campo1 = Tab3.campo1)

Nesse exemplo é selecionado apenas o campo1 de cada uma das 3 tabelas. Agora você adapta o select conforme suas necessidades.

A estrutura das tabelas estão assim, nesse exemplo:
Tab1 -> campo1, campo2, campo3, campo4, campo5
Tab2 -> campo1, campo2, campo3
Tab3 -> campo1, campo2, campo3, campo4

Criado 19 de janeiro de 2007
Ultima resposta 19 de jan. de 2007
Respostas 1
Participantes 2