Maison > base de données > tutoriel mysql > MySQL prend-il en charge les jointures externes complètes?

MySQL prend-il en charge les jointures externes complètes?

Mary-Kate Olsen
Libérer: 2025-01-25 13:36:13
original
222 Les gens l'ont consulté

Does MySQL Support Full Outer Joins?

Le manque de support extérieur complet de MySQL de MySQL en plein air et de contournement

La question: MySQL propose-t-elle une jointure extérieure complète native, garantissant que toutes les lignes des deux tables jointes sont incluses quels que soient les critères de correspondance?

La réponse: Non, MySQL ne prend pas directement en charge les jointures extérieures complètes. Cependant, nous pouvons reproduire efficacement cette fonctionnalité en utilisant des techniques alternatives.

APPROCHE 1: Tiration de l'union

Cette approche convient lorsqu'il n'y a aucun risque de générer des lignes en double dans la sortie. La requête combine un LEFT JOIN et un RIGHT JOIN en utilisant UNION:

<code class="language-sql">SELECT * FROM t1
LEFT JOIN t2 ON t1.id = t2.id
UNION
SELECT * FROM t1
RIGHT JOIN t2 ON t1.id = t2.id;</code>
Copier après la connexion

Approche 2: employant un syndicat avec un anti-join

Pour les scénarios où les lignes en double sont possibles, une méthode plus robuste est nécessaire. Cela implique d'utiliser UNION ALL avec un anti-jointure pour éliminer la redondance:

<code class="language-sql">SELECT * FROM t1
LEFT JOIN t2 ON t1.id = t2.id
UNION ALL
SELECT * FROM t1
RIGHT JOIN t2 ON t1.id = t2.id
WHERE t1.id IS NULL;</code>
Copier après la connexion

La partie anti-join (WHERE t1.id IS NULL dans la partie RIGHT JOIN) filtre les doublons avant l'opération UNION ALL combine les résultats. Cela garantit une émulation complète et précise d'une jointure extérieure complète.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal