Maison >base de données >tutoriel mysql >Comment puis-je répliquer la fonctionnalité « INTERSECT » de MySQL ?

Comment puis-je répliquer la fonctionnalité « INTERSECT » de MySQL ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-22 12:58:36897parcourir

How Can I Replicate MySQL's `INTERSECT` Functionality?

Recherche d'équivalents pour l'intersection de MySQL

En SQL, l'opérateur INTERSECT récupère des valeurs distinctes qui apparaissent dans les deux requêtes spécifiées. Cependant, MySQL ne supporte pas nativement INTERSECT.

Alternatives dans MySQL

Pour obtenir un résultat similaire dans MySQL, on peut utiliser :

  • INNER JOIN : Les valeurs par colonne correspondent entre les deux tables, mais les doublons seront renvoyé.
  • WHERE ... IN : Sélectionne des valeurs distinctes dans la première table qui existent également dans la deuxième table.

Exemple

Considérez la requête suivante dans un autre système de gestion de base de données qui utilise INTERSECT :

(select * from emovis_reporting where (id=3 and cut_name= '全プロセス' and cut_name='恐慌') ) 
intersect
( select * from emovis_reporting where (id=3) and ( cut_name='全プロセス' or cut_name='恐慌') )

Alternative MySQL utilisant INNER JOIN :

SELECT DISTINCT * 
FROM emovis_reporting e1
INNER JOIN emovis_reporting e2 
ON (e1.id = e2.id) AND (e1.cut_name = e2.cut_name)
WHERE e1.id = 3 AND (e1.cut_name = '全プロセス' OR e1.cut_name = '恐慌');

Alternative MySQL utilisant WHERE ... IN :

SELECT DISTINCT * 
FROM emovis_reporting
WHERE (id = 3) AND (cut_name IN ('全プロセス', '恐慌'));

Ces alternatives MySQL renvoient des valeurs distinctes qui satisfont aux conditions spécifiées dans les deux sous-requêtes. Cependant, il est important de noter que la colonne id est impliquée dans cette requête spécifique, ce qui empêchera le renvoi de doublons. Pour les requêtes sans identifiants uniques, l'utilisation de DISTINCT dans la requête externe peut être nécessaire pour garantir des résultats uniques.

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