Maison > base de données > tutoriel mysql > le corps du texte

Comment émuler une FULL OUTER JOIN dans MySQL ?

DDD
Libérer: 2024-11-15 15:59:03
original
932 Les gens l'ont consulté

How to Emulate a FULL OUTER JOIN in MySQL?

Émulation de MySQL FULL OUTER JOIN

Dans MySQL, l'absence de support direct pour FULL OUTER JOIN peut poser des défis. Pour surmonter cette limitation, une solution de contournement commune est nécessaire.

Explication :

MySQL utilise les opérations LEFT JOIN et RIGHT JOIN, mais pas FULL JOIN. Par conséquent, l'émulation d'un FULL JOIN nécessite une combinaison de ces jointures.

Approche :

  1. LEFT JOIN :

    • Effectuez un LEFT JOIN entre les tables t_13 et t_17, en faisant correspondre le champ commun "valeur".
    • Cette opération associe toutes les lignes de t_13 avec les lignes correspondantes dans t_17, ou avec des valeurs NULL s'il n'y a pas de correspondance.
  2. RIGHT JOIN :

    • Effectuer un RIGHT JOIN entre les tables t_13 et t_17, similaires à LEFT JOIN mais avec un ordre de table opposé.
    • Cette étape fait correspondre toutes les lignes de t_17 avec les lignes correspondantes dans t_13, ou avec des valeurs NULL s'il n'y a pas de correspondance.
  3. UNION ALL :

    • Combinez les résultats de LEFT JOIN et RIGHT JOIN à l'aide de l'opération UNION ALL.
    • Cela fusionne les lignes qui ont des correspondances dans les deux tables et préserve les lignes en double.
  4. OÙ Clause :

    • Ajoutez une clause WHERE pour filtrer les valeurs NULL dans le champ "val13".
    • Cela élimine les lignes où les deux tables ont renvoyé NULL, indiquant aucune correspondance.
  5. ORDER PAR et LIMIT :

    • Triez le résultat combiné en fonction des valeurs fusionnées de "val13" et "val17" pour obtenir une seule liste triée.
    • Facultativement, appliquez une clause LIMIT à limiter le nombre de lignes affichées.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal