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 :
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 :
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!