Équivalents MySQL de PostgreSQL INTERSECT
Dans MySQL, l'opérateur INTERSECT n'est pas pris en charge. Cependant, il existe plusieurs approches alternatives pour obtenir des résultats similaires.
Par exemple, lors d'une recherche dans plusieurs champs d'enregistrements répondant à des critères spécifiques, une jointure interne peut être utilisée. La requête suivante filtre les lignes de la table « enregistrements » qui ont des lignes correspondantes dans la table « données », où « john » et « smith » correspondent respectivement aux valeurs des champs « prénom » et « nom » :
SELECT DISTINCT records.id FROM records INNER JOIN data d1 ON d1.id = records.firstname AND d1.value = "john" INNER JOIN data d2 ON d2.id = records.lastname AND d2.value = "smith"
Une autre alternative est la clause IN :
SELECT DISTINCT records.id FROM records WHERE records.firstname IN ( SELECT id FROM data WHERE value = 'john' ) AND records.lastname IN ( SELECT id FROM data WHERE value = 'smith' )
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!