quelles sont les utilisations des différentes opérations de jointure dans sql? Comme je veux savoir pourquoi avons-nous besoin des différentes jointures internes et externes?quelles sont les utilisations des différentes opérations de jointure dans sql
Répondre
Le seul type de jointure vous vraiment besoin est LEFT OUTER JOIN
. Chaque autre type de jointure peut être réécrit en termes d'une ou plusieurs jointures externes, et éventuellement de filtrage. Alors pourquoi avons-nous besoin de tous les autres? Est-ce juste pour confondre les gens? Ce ne serait pas plus simple s'il n'y avait qu'un seul type de jointure? Vous pouvez également demander: Pourquoi avoir les deux a <= b
et b >= a
? Ne font-ils pas juste la même chose? Ne pouvons-nous pas nous débarrasser de l'un d'entre eux? Cela simplifierait les choses!
Parfois, il est plus facile d'échanger <=
en >=
au lieu de permuter les arguments. De même, une jointure à gauche et une jointure à droite sont la même chose juste avec les opérandes permutés. Mais encore une fois, il est pratique d'avoir les deux options au lieu d'obliger les gens à écrire leurs requêtes dans un ordre spécifique.
Une autre chose que vous pourriez poser est la suivante: Dans la logique pourquoi nous avons AND
, OR
, NOT
, XOR
, NAND
, NOR
, etc? Tous ceux-ci peuvent être réécrits en termes de NAND
s! Pourquoi ne pas simplement avoir NAND
?Eh bien c'est awkward d'écrire un OR
en termes de NAND
s, et ce n'est pas aussi évident que ce que l'intention est - si vous écrivez OR
, les gens savent immédiatement ce que vous voulez dire. Si vous écrivez un tas de NAND
s, ce que vous essayez d'atteindre n'est pas évident.
De même, si vous voulez faire a FULL OUTER JOIN b
, vous pouvez faire une jointure à gauche et une jointure à droite, supprimer les résultats en double, puis tout regrouper. Mais c'est une douleur et donc il y a un raccourci pour ça.
Quand utilisez-vous chacun d'eux? Voici une règle simplifiée:
- Si vous voulez toujours une ligne de résultat pour chaque ligne de la table GAUCHE, utilisez une jointure gauche.
- Si vous voulez toujours une ligne de résultat pour chaque ligne de la table RIGHT, utilisez une RIGHT OUTER JOIN.
- Si vous voulez toujours une ligne de résultats pour chaque ligne de l'une ou l'autre des tables, utilisez FULL OUTER JOIN.
- Si vous voulez uniquement une ligne de résultats lorsqu'il y a une ligne dans les deux tables, utilisez une INNER JOIN.
- Si vous voulez toutes les paires de lignes possibles, une ligne de chaque table, utilisez un CROSS JOIN.
Ce lien devrait effacer tout ce que vous doutes liés Inscrivez-vous:
http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html
J'ai utilisé ce tutoriel pour comprendre les opérations de jointure avant de poster. Ma question est: pourquoi avons-nous besoin de tant d'opérations de jointures différentes? Quand utiliser quelle opération de jointure? – varunthacker
inner join
- joint les lignes des deux ensembles de match en fonction des critères spécifiés.
outer join
- sélectionne l'ensemble d'un ensemble, ainsi que les éléments correspondants ou vides (si non concordants) de l'autre ensemble. Les jointures externes peuvent être left
ou right
, pour spécifier quel jeu est retourné dans son intégralité.
Pour rendre les autres réponses plus claires - VOUS OBTIENNENT DIFFÉRENTS RÉSULTATS en fonction de la jointure que vous choisissez, lorsque les colonnes que vous rejoignez contiennent des valeurs nulles, par exemple. Donc, pour chaque scénario de la vie réelle, il y a une jointure qui lui convient (soit vous voulez les lignes sans les données ou pas dans l'exemple des valeurs nulles).
Ma réponse prend 2 tables jointes sur une seule clé:
INNER JOIN
- obtenir les résultats qui sont deux tables de jointure (selon la règle de jointure)FULL OUTER JOIN
- obtenir tous les résultats de à la fois la table (produit cartésien)LEFT OUTER JOIN
- obtenir tous les résultats de la table gauche et les résultats correspondants de la droite
Vous pouvez ajouter des clauses WHERE
afin de limiter davantage les résultats.
Utilisez-les afin d'obtenir seulement ce que vous voulez pour obtenir.
- 1. Quelles sont les utilisations acceptables de goto?
- 2. Quelles sont les utilisations des métadonnées de Clojure?
- 3. Quelles sont les utilisations légitimes des crochets de clavier globaux?
- 4. Quelles sont les meilleures utilisations des magasins de documents?
- 5. Combien et quelles sont les utilisations de "const" en C++?
- 6. Quelles sont les utilisations de la portée "flash" dans JSF?
- 7. Quelles sont les utilisations intéressantes pour les agents Java?
- 8. Ruby stdio consts et globals, quelles sont les utilisations?
- 9. Quelles sont les utilisations pratiques du fichier resx?
- 10. Quelles sont les utilisations des paramètres de modèle de modèle en C++?
- 11. Quelles sont les opérations de base de données SQL "courantes" (nécessaires/utiles à connaître)?
- 12. Quelles sont les différentes zones de Memory & Disk?
- 13. Quelles sont les différentes techniques de mémoisation en Java?
- 14. Quelles sont les utilisations pratiques de Lua dans Mac OS X?
- 15. Quelles sont vos utilisations les plus courantes pour les expressions régulières?
- 16. Quelles sont les utilisations du backend de traduction C de Perl?
- 17. Quelles sont les différentes options de traitement des fichiers PDF téléchargés dans une application Django?
- 18. commande SQL des opérations
- 19. Quelles sont les différentes façons d'appeler une fonction?
- 20. Quelles sont les différentes méthodes d'hébergement d'un service WCF?
- 21. Quelles sont les opérations de threading bloquantes dans .NET qui gèrent les messages COM lorsqu'elles sont bloquées?
- 22. Quelles sont les tables magiques disponibles dans SQL Server 2000?
- 23. Quels sont les coûts absolus et relatifs des différentes opérations en PHP?
- 24. Utilisations pour les schémas SQL Server
- 25. Quelles sont les expressions de service de reporting SQL Service?
- 26. Où sont les utilisations intelligentes de l'évaluation stricte?
- 27. Quelles sont les différentes possibilités d'utilisation de MySql dans une application de bureau
- 28. Quels sont les avantages des différentes endiannesses?
- 29. Quelles sont les différentes valeurs possibles de __name__ dans un script Python, et que signifient-elles?
- 30. quelles sont les différentes options de format pour importer un fichier dans MSAccess
pourquoi dans le monde les gens sont-ils en train de voter pour cette question? – Nix
Um. Peut-être que c'est une bonne question de leur point de vue? – EvilTeach