[Doctrine] requête jointure
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
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
Normalement le LEFT JOIN est plus rapide. Tu peux essayer de comparer l'exécution des deux requêtes avec EXPLAIN.
Ok merci !! :)
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 ?