Heim > Datenbank > MySQL-Tutorial > Wie kann ich die „INTERSECT'-Funktionalität von MySQL replizieren?

Wie kann ich die „INTERSECT'-Funktionalität von MySQL replizieren?

Linda Hamilton
Freigeben: 2024-12-22 12:58:36
Original
813 Leute haben es durchsucht

How Can I Replicate MySQL's `INTERSECT` Functionality?

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

  • INNER JOIN: Die Werte pro Spalte stimmen zwischen beiden Tabellen überein, es kommt jedoch zu Duplikaten zurückgegeben.
  • WHERE ... IN: Wählt eindeutige Werte in der ersten Tabelle aus, die auch in der zweiten Tabelle vorhanden sind.

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='恐慌') )
Nach dem Login kopieren

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 = '恐慌');
Nach dem Login kopieren

MySQL-Alternative mit WHERE ... IN:

SELECT DISTINCT * 
FROM emovis_reporting
WHERE (id = 3) AND (cut_name IN ('全プロセス', '恐慌'));
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage