sélectionner plusieurs colonnes de deux tables différentes, merge puis insert dans une autre table?

J'ai les tables suivantes:

T1 T2 T3 T4 ID ID ABC ID --- -------- --- --- 1 3 uvw 3 2 4 xyz 4 

Je dois d'abord sélectionner les éléments de B qui ont les ID récupérés de C comme suit:

 SELECT a,b,c FROM T2 WHERE ID IN (SELECT ID FROM T3) --will return u,v,w x,y,z 

Maintenant, je veux récupérer les ID dans T1 et les merge avec chaque ligne returnnée à partir de la requête ci-dessus et les insert dans T4:

  1 uvw 1 xyz 2 uvw 2 xyz 

Utiliser l'option avec CROSS JOIN

 INSERT T4(ID, A, B, C) SELECT t1.ID, oA, oB, oC FROM T1 t1 CROSS JOIN ( SELECT a,b,c FROM T2 t2 JOIN T3 t3 ON t2.ID = t3.ID ) o 

Démo sur SQLFiddle

Si je vous ai bien compris, cela peut aider:

 INSERT INTO T4 SELECT ID, A, B, C FROM (SELECT a,b,c FROM T2 WHERE ID IN (SELECT ID FROM T3)) tab1 CROSS JOIN T1