2011-01-15 5 views
13

J'ai un problème dans deux sous-requêtes conjointes dans MySQL, par exemple.Joindre deux sous-requêtes dans MySQL

(select * from table1 where id = 1 group by f1) a1 
join 
(select * from table2 where id = 2 group by f2) a2 ON a1.f3 = a2.f3; 

ERREUR 1064 (42000): Vous avez une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à votre version du serveur MySQL pour la bonne syntaxe à utiliser près de 'join (select * from table1 où id = 2)' à la ligne 1

Ma syntaxe est-elle incorrecte?

+0

que voulez-vous faire? – Nishant

+0

Désolé pour mon exemple simplifié, j'ai mis à jour le SQL. – Howard

+0

@Howard, si jamais vous revenez à SO, cela vous dérangerait-il de réviser les réponses et éventuellement de changer la réponse acceptée si vous le souhaitez? Merci. –

Répondre

3

Découvrez quelques exemples

SELECT * FROM table1, table2; 

SELECT * FROM table1 INNER JOIN table2 ON table1.id=table2.id; 

SELECT * FROM table1 LEFT JOIN table2 ON table1.id=table2.id; 

SELECT * FROM table1 LEFT JOIN table2 USING (id); 
+0

Merci beaucoup pour cette réponse. J'ai été googling pendant quelques jours en vain jusqu'à ce que j'ai frappé cette question. – alexy13

+7

Cela ne répond pas vraiment à la question telle qu'elle est écrite. Cette question correspond à la recherche google pour joindre deux sous-requêtes. Par conséquent, la réponse de @ a_horse_with_no_name correspond mieux. –