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!