Maison >base de données >tutoriel mysql >Comment puis-je simuler l'opération INTERSECT dans MySQL ?

Comment puis-je simuler l'opération INTERSECT dans MySQL ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-13 18:44:11915parcourir

How Can I Simulate the INTERSECT Operation in MySQL?

Approches alternatives à MySQL Intersect

La base de données MySQL ne dispose pas de l'opération INTERSECT, qui est une fonction unique utilisée pour identifier les valeurs trouvées dans les deux résultats ensembles. Néanmoins, il existe des méthodes alternatives pour obtenir des résultats similaires.

Méthode 1 : INNER JOIN avec DISTINCT

Pour émuler l'opération INTERSECT à l'aide d'un INNER JOIN, suivez ces étapes :

  • Créez l'INNER JOIN entre les deux tables en fonction des valeurs partagées que vous souhaitez pour comparer.
  • Utilisez le mot-clé DISTINCT pour supprimer les valeurs en double de l'ensemble de résultats.

Cette méthode garantit que seules les valeurs uniques présentes dans les deux tables sont renvoyées.

Méthode 2 : OÙ ... IN avec DISTINCT

Alternativement, vous pouvez utiliser un sous-requête dans la clause WHERE ... IN avec le mot-clé DISTINCT pour obtenir le même résultat :

  • Sélectionnez les valeurs DISTINCT d'une table et créez une sous-requête.
  • Utilisez l'opérateur IN pour comparer les valeurs de l'autre table avec la sous-requête, en garantissant que seules les valeurs correspondantes sont récupéré.

Exemple :

Supposons que vous ayez deux tables, table_a et table_b, avec les données suivantes :

table_a table_b
1, A 1, B
2, B
3, B

À recherchez les valeurs qui existent dans les deux tables en utilisant un INNER JOIN avec DISTINCT, vous pouvez exécuter ce qui suit requête :

SELECT DISTINCT value
FROM table_a
INNER JOIN table_b
USING (value);

De même, en utilisant WHERE ... IN avec DISTINCT :

SELECT DISTINCT value
FROM table_a
WHERE (value) IN (SELECT DISTINCT value FROM table_b);

Ces deux requêtes renverront le résultat suivant :

value
B

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