[Doctrine] requête jointure

Rechercher

[Doctrine] requête jointure

Par saturn1  -  4 reponses  -  Le 03/02/2009 16:29  -  Editer  - 

Salut, avant je faisais les query jointures avec un JOIN ou LEFT JOIN mais mon prof de BDD m'a dit que c'est plus rapide de faire une requête du type

SELECT c1,c2 FROM t1,t2 WHERE t1.c1=t2.c2 .

Bref déjà c'est vrai que c'est mieux ou pas?

Sinon je cherche à traduire une requête sous doctrine qui est

SELECT g.content,count(c.id) FROM geek_geekerie g,geek_com c WHERE g.id=c.geekerie_id GROUP BY g.id

mais je n'y arrive pas ... pourrais-tu m'aider !?

J'ai cherché dans la doc mais je n'ai pas trouvé.

Merci

 

Réponses apportées à cette discussion

Par saturn1  -  Le 03/02/2009 17:15  -  Haut de page  - 

J'ai réussi avec un leftJoin mais peux-tu me dire ce qui est mieux? Le left Join ou le from t1,t2 WHERE...?

Merci

 
Par Emacs  -  Le 03/02/2009 18:15  -  Haut de page  - 

Normalement le LEFT JOIN est plus rapide. Tu peux essayer de comparer l'exécution des deux requêtes avec EXPLAIN.

 
Par saturn1  -  Le 03/02/2009 20:37  -  Haut de page  - 

Ok merci !! :)

 
Par immobilia  -  Le 09/07/2009 00:49  -  Haut de page  - 

SELECT c1,c2 FROM t1,t2 WHERE t1.c1=t2.c2 est un INNER JOIN

Un INNER JOIN et LEFT JOIN ne produit pas le même résultat s'il y a des enregistrement sans correspondance entre les 2 tables selon ta condition de jointure.

Perso, sous MySQL, je pense que le INNER JOIN est plus rapide qu'un LEFT JOIN pour des index identiques.

Question : comment à tu coder ton LEFT JOIN avec Doctrine ? Peux tu nous donner le code correspondant à ta requête ?

 

Ajouter une réponse à la discussion

Seuls les membres connectés sont autorisés à poster dans les forums !

Identifiez-vous
Join |  ID/MDP? |