Maison >base de données >tutoriel mysql >Comment émuler un FULL JOIN dans MySQL ?

Comment émuler un FULL JOIN dans MySQL ?

DDD
DDDoriginal
2024-11-15 21:15:03879parcourir

How to Emulate a FULL JOIN in MySQL?

Comprendre les limites de FULL JOIN de MySQL

Dans MySQL, contrairement à certaines autres bases de données relationnelles, il n'y a pas de support direct pour l'opération FULL JOIN . Cela signifie qu'obtenir le résultat souhaité indiqué dans la question nécessite une approche différente.

Émuler un FULL JOIN dans MySQL

Pour émuler un FULL JOIN dans MySQL, le recommandé La solution de contournement implique une combinaison de LEFT JOIN et de RIGHT JOIN. Voici comment procéder :

SELECT
  t_13.value AS val13,
  t_17.value AS val17
FROM
  t_13
LEFT JOIN
  t_17
ON
  t_13.value = t_17.value
UNION ALL
SELECT
  t_13.value AS val13,
  t_17.value AS val17
FROM
  t_13
RIGHT JOIN
  t_17
ON
  t_13.value = t_17.value
WHERE
  t_13.value IS NULL
ORDER BY
  COALESCE(val13, val17)
LIMIT 30;

Cette requête produit effectivement le produit cartésien des deux tables (t_13 et t_17), puis filtre les lignes où les deux valeurs sont NULL. Le résultat est un tableau qui inclut toutes les lignes des deux tableaux, même celles sans valeurs correspondantes dans l'autre tableau, garantissant que toutes les combinaisons possibles sont représenté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!

Déclaration:
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