Äquivalente für MySQLs Intersect finden
In SQL ruft der INTERSECT-Operator unterschiedliche Werte ab, die in beiden angegebenen Abfragen erscheinen. Allerdings unterstützt MySQL INTERSECT nicht nativ.
Alternativen in MySQL
Um ein ähnliches Ergebnis in MySQL zu erzielen, kann man Folgendes verwenden:
Beispiel
Betrachten Sie die folgende Abfrage in einem anderen Datenbankverwaltungssystem, das verwendet 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='恐慌') )
MySQL-Alternative mit 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 = '恐慌');
MySQL-Alternative mit WHERE ... IN:
SELECT DISTINCT * FROM emovis_reporting WHERE (id = 3) AND (cut_name IN ('全プロセス', '恐慌'));
Diese MySQL-Alternativen geben unterschiedliche Werte zurück, die die in beiden Unterabfragen angegebenen Bedingungen erfüllen. Es ist jedoch wichtig zu beachten, dass die ID-Spalte an dieser speziellen Abfrage beteiligt ist, wodurch verhindert wird, dass Duplikate zurückgegeben werden. Bei Abfragen ohne eindeutige Bezeichner kann die Verwendung von DISTINCT in der äußeren Abfrage erforderlich sein, um eindeutige Ergebnisse sicherzustellen.
Das obige ist der detaillierte Inhalt vonWie kann ich die „INTERSECT'-Funktionalität von MySQL replizieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!