Heim >Datenbank >MySQL-Tutorial >Wie schließe ich Zeilen in MySQL-Abfragen ohne EXCEPT aus?

Wie schließe ich Zeilen in MySQL-Abfragen ohne EXCEPT aus?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-01 12:05:10885Durchsuche

How to Exclude Rows in MySQL Queries Without EXCEPT?

EXCEPT-Syntaxfehler in SQL-Abfrage

In MySQL kann die Verwendung der EXCEPT-Syntax zum Ausschließen von Zeilen aus einer Abfrage zu einem Syntaxfehler führen. Dies liegt daran, dass MySQL das Schlüsselwort EXCEPT nicht nativ unterstützt.

Alternative Lösungen

Um die gewünschte Ausschlussfunktionalität zu erreichen, können Sie entweder die NOT IN-Klausel oder eine verwenden LEFT JOIN mit einer IFNULL-Bedingung:

NOT IN Klausel:

SELECT s.sno
FROM students s
WHERE s.sno NOT IN (
    SELECT t.sno
    FROM take t
    WHERE t.cno = 'CS112'
);

LEFT JOIN mit IFNULL:

SELECT s.sno
FROM students s
LEFT JOIN take t ON s.sno = t.sno
WHERE IFNULL(t.cno, '') != 'CS112';

Beispiel

Bedenken Sie Folgendes Beispieldaten:

create temporary table students (sno int);

insert into students values (1);
insert into students values (2);
insert into students values (3);
insert into students values (4);
insert into students values (5);
insert into students values (6);
insert into students values (7);
insert into students values (8);
insert into students values (9);
insert into students values (10);

create temporary table take (sno int, cno varchar(50));

insert into take values (1, 'CS112');
insert into take values (2, 'CS112');
insert into take values (3, 'CS112');
insert into take values (4, 'CS112');

Verwenden Sie entweder die NOT IN-Klausel oder die LEFT JOIN mit IFNULL gibt das folgende Ergebnis zurück:

+------+
| sno  |
+------+
|    5 |
|    6 |
|    7 |
|    8 |
|    9 |
|   10 |
+------+

Diese alternativen Methoden schließen Studenten effektiv aus, die den Kurs CS112 belegt haben, was zu einer Liste von Studenten führt, die den Kurs nicht belegt haben.

Das obige ist der detaillierte Inhalt vonWie schließe ich Zeilen in MySQL-Abfragen ohne EXCEPT aus?. 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