Comment puis-je remplacer un left join dans SQL
Quelqu'un peut me dire comment puis-je écrire l'équivalent d'une jointure gauche sans vraiment de gauche rejoint.
Select * from a left join b on a.name = b.name.
Sélectionnez * à partir de b à droite rejoindre un sur un.nom = b.nom.
C'est juste une blague, pourquoi voudriez-vous?
J'ai vraiment le but sans l'aide de jointures à tous, le problème est que je ne peut pas obtenir une jointure gauche de travailler en veille prolongée et de les éliminer complètement
Je serais remarquablement surpris si Hibernate a été incapable de générer des requêtes qui incluent gauche rejoint. Vous devriez peut-être poser une question à ce sujet à la place? (Toutes les réponses que vous obtenez ici, je serais surpris si vous pouviez force d'Hibernation pour les générer)
C'est juste une blague, pourquoi voudriez-vous?
J'ai vraiment le but sans l'aide de jointures à tous, le problème est que je ne peut pas obtenir une jointure gauche de travailler en veille prolongée et de les éliminer complètement
Je serais remarquablement surpris si Hibernate a été incapable de générer des requêtes qui incluent gauche rejoint. Vous devriez peut-être poser une question à ce sujet à la place? (Toutes les réponses que vous obtenez ici, je serais surpris si vous pouviez force d'Hibernation pour les générer)
OriginalL'auteur Help me please | 2011-09-22
Vous devez vous connecter pour publier un commentaire.
Garder à l'esprit que SQL de la jointure externe est une sorte de relationnel de l'union qui est expressément conçue pour projeter les valeurs null. Si vous souhaitez éviter d'utiliser la valeur null (une bonne chose, à mon avis), vous devriez éviter d'utiliser des jointures externes. Notez que moderne relationnel langues ont renoncé à la notion de valeur null et jointure externe entièrement.
Cette jointure externe:
...est sémantiquement équivalent à ce code SQL:
La deuxième requête peut paraître longue haleine, mais c'est seulement parce que de la façon dont SQL a été conçu/a évolué. Le dessus est simplement une jointure naturelle, un syndicat et un semijoin. Toutefois, SQL n'a pas de semijoin opérateur, il est nécessaire de spécifier la liste de colonne dans la
SELECT
clause et à écrireJOIN
clauses si votre produit n'a pas mis en œuvre la Norme SQLNATURAL JOIN
de la syntaxe, ce qui entraîne beaucoup de code pour exprimer quelque chose de très simple.Par conséquent, vous pouvez écrire du code comme la deuxième requête ci-dessus mais en utilisant une réelle valeur par défaut plutôt que la valeur null.
OriginalL'auteur onedaywhen
Bien que les jointures externes gauches sont recommandés pour l'écriture de sql par rapport à un autre, mais encore, nous pouvons réaliser une jointure externe gauche en utilisant de l'union pour le jeu de résultats. Si nous avons deux tableau le tableau 1 et le Tableau 2, alors on peut l'obtenir par la suite -
Cela aidera à atteindre le même résultat, mais en raison de l'utilisation de l'Union, il pourrait y avoir certains problèmes de performances dans le cas où les tables sont grandes.
OriginalL'auteur Neo
Oracle déguisée left join:
Générique :
OriginalL'auteur Benoit