Heim >Datenbank >MySQL-Tutorial >Wie behebe ich den EXCEPT-Syntaxfehler von MySQL und finde Alternativen?

Wie behebe ich den EXCEPT-Syntaxfehler von MySQL und finde Alternativen?

Linda Hamilton
Linda HamiltonOriginal
2024-12-31 08:24:13698Durchsuche

How to Resolve MySQL's EXCEPT Syntax Error and Find Alternatives?

MySQL EXCEPT-Syntaxfehler: Lösung und Alternativen

Der Fehler, der beim Versuch, die Abfrage mit dem EXCEPT-Operator in MySQL auszuführen, aufgetreten ist, entsteht durch Es liegt an der mangelnden Unterstützung dieser Syntax.

Um dieses Problem zu lösen, sollten Sie alternative Ansätze wie NOT IN oder LEFT in Betracht ziehen JOIN:

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

Alternativ können Sie einen LEFT JOIN verwenden:

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

Demonstration mit temporären Tabellen:

Zur Veranschaulichung der Wirksamkeit Lassen Sie uns für diese Alternativen temporäre Tabellen mit Beispieldaten erstellen:

create temporary table temp_students (sno int)

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

create temporary table temp_take (sno int, cno varchar(50))

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

Execute the following query to retrieve students who are not enrolled in CS112:

SELECT s.sno 
FROM temp_students s
        LEFT JOIN temp_take t ON s.sno = t.sno
WHERE IFNULL(t.cno, '') != 'CS112'

Diese Abfrage sollte den Schüler zurückgeben Zahlen 5 bis 10.

Das obige ist der detaillierte Inhalt vonWie behebe ich den EXCEPT-Syntaxfehler von MySQL und finde Alternativen?. 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