2009-11-01 5 views
1

Quelle est la différence entre une jointure interne et une sous-requête? et quand devrais-je utiliser une sous-requête? ou une jointure interne? J'étais dans une situation où récemment une jointure interne était trop lent et était la solution sous-requête. De ma compréhension limitée, je pensais que les deux travaillaient exactement la même chose.Quand dois-je utiliser les jointures internes et quand puis-je utiliser les sous-requêtes?

+1

double: http://stackoverflow.com/questions/1652164/mysql-query-what-is-the-difference-between-join-and-a-subquery –

Répondre

1

Il n'a pas vraiment d'importance si vous utilisez des jointures ou des sous-requêtes. Vous pouvez transformer n'importe quelle requête avec une sous-requête en une requête avec une jointure. J'irais avec ce qui est plus lisible. Parfois, les jointures sont plus lisibles. Pour les autres requêtes, les sous-requêtes sont plus lisibles. Vous ne devriez pas avoir une grande différence de performance, aussi longtemps que vous optimisez les requêtes. Une exception que j'ai rencontré est la création d'un correlated subquery, où la sous-requête qui est exécutée dépend des résultats de la requête externe. Ces types de requêtes peuvent être utiles, mais très inefficaces. Vous pouvez les utiliser lorsque vous devez calculer des données pour chaque ligne d'une requête. Dans ce cas, vous ne pouvez pas utiliser de jointures.

Questions connexes