Heim >Datenbank >MySQL-Tutorial >Wie repliziere ich die INTERSECT-Operator-Funktionalität von MySQL?

Wie repliziere ich die INTERSECT-Operator-Funktionalität von MySQL?

DDD
DDDOriginal
2024-12-25 09:07:32784Durchsuche

How to Replicate MySQL's INTERSECT Operator Functionality?

Entspricht dem INTERSECT-Operator von MySQL

Der SQL-INTERSECT-Operator wird verwendet, um die übereinstimmenden Werte zu identifizieren und zurückzugeben, die in beiden Abschnitten der Abfrage auftreten . Allerdings wird dieser Operator in MySQL nicht nativ unterstützt.

Alternative Ansätze

Um die Funktionalität des INTERSECT-Operators in MySQL zu erreichen, können mehrere alternative Methoden eingesetzt werden:

  • INNER JOIN Verwenden DISTINCT:
SELECT DISTINCT table_a.column
FROM table_a
INNER JOIN table_b ON table_a.column = table_b.column;
  • WHERE ... IN und DISTINCT:
SELECT DISTINCT table_a.column
FROM table_a
WHERE table_a.column IN (SELECT table_b.column FROM table_b);

Beispiel

Betrachten Sie die folgende Abfrage mit INTERSECT Operator:

(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='恐慌') )

Diese Abfrage ruft Datensätze aus der Tabelle „emovis_reporting“ ab, wobei die ID 3 ist und der Schnittname sowohl „全プロセス“ als auch „恐慌“ ist.

MySQL Äquivalente

Zur Implementierung dieser Abfrage in MySQL mit der INNER JOIN-Methode:

SELECT DISTINCT *
FROM emovis_reporting AS a
INNER JOIN emovis_reporting AS b ON a.id = b.id
WHERE a.id = 3
  AND a.cut_name = '全プロセス'
  AND b.cut_name = '恐慌';

Verwendung der WHERE ... IN- und DISTINCT-Methode:

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

Das obige ist der detaillierte Inhalt vonWie repliziere ich die INTERSECT-Operator-Funktionalität von MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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