2011-06-09 2 views
2

J'ai trois tablesComment utiliser joindre sur trois tables

Tableau1 Table2 et Table3.

Tableau 1 ayant l'ID de colonne. Tableau2 ayant l'ID de nom de colonne, nom. Tableau trois ayant le nom de la colonne Nom.

Maintenant, je veux récupérer l'ID de table1 qui est là dans Table2 par de sorte que le nom associé à l'ID dans la table à doit être dans Table3.

Table1.ID = Table2.ID (Table2.Name = Table3.Namw).

Sans utiliser l'opérateur IN.Seules les jointures.

Répondre

5
select table1.id, table2.name 
from table1 
join table2 on table2.id = table1.id 
join table3 on table3.name = table2.name 
1
select distinct t1.ID 
from Table1 t1 
    ,Table2 t2 
    ,Table3 t3 
where t1.ID = t2.ID 
    and t2.Name = t3.Name 
; 

ou

select t1.ID 
from Table1 t1 
where exists (
    select 1 
    from Table2 t2 
     ,Table3 t3 
    where t1.ID = t2.ID 
    and t2.Name = t3.Name 
); 
+1

Bien essayé, mais non. –