Maison >base de données >tutoriel mysql >Comment puis-je obtenir les fonctionnalités de l'opérateur INTERSECT de SQL Server dans MySQL ?

Comment puis-je obtenir les fonctionnalités de l'opérateur INTERSECT de SQL Server dans MySQL ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-11 18:42:15596parcourir

How Can I Achieve the Functionality of SQL Server's INTERSECT Operator in MySQL?

Trouver une alternative à l'intersection dans MySQL

L'opérateur INTERSECT de Microsoft SQL Server permet de récupérer des valeurs distinctes qui existent en commun entre deux ensembles de données. Malheureusement, MySQL ne fournit pas d'équivalent direct.

Syntaxe SQL Server :

INTERSECT
SELECT value FROM dataset1
SELECT value FROM dataset2

Alternatives MySQL :

Au lieu de cela, MySQL propose des méthodes alternatives pour obtenir des résultats similaires :

Méthode 1 : INNER JOIN avec Distinct

Cette approche utilise un INNER JOIN entre les deux ensembles de données et applique le mot-clé DISTINCT pour éviter les doublons :

SELECT DISTINCT value
FROM dataset1
INNER JOIN dataset2
USING (value);

Méthode 2 : Sous-requête avec IN

Une autre option consiste à utiliser une sous-requête avec IN pour vérifier la correspondance valeurs :

SELECT value
FROM dataset1
WHERE value IN
(SELECT value FROM dataset2);

Exemple :

Considérez les tables MySQL suivantes :

CREATE TABLE table1 (id INT, value VARCHAR(255));
CREATE TABLE table2 (id INT, value VARCHAR(255));

INSERT INTO table1 VALUES (1, 'A'), (2, 'B'), (3, 'B');
INSERT INTO table2 VALUES (1, 'B');

-- Method 1
SELECT DISTINCT value
FROM table1
INNER JOIN table2
USING (value);

-- Method 2
SELECT value
FROM table1
WHERE value IN
(SELECT value FROM table2);

Les deux méthodes renverront le résultat suivant :

+-------+
| value |
+-------+
| B     |
+-------+

Lorsque vous travaillez avec des données non uniques, le mot-clé DISTINCT dans la méthode 1 ou l'utilisation de DISTINCT dans la sous-requête de la méthode 2 garantit que seules les valeurs uniques sont renvoyé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