Maison > base de données > tutoriel mysql > Comment résoudre l'erreur de syntaxe EXCEPT de MySQL et trouver des alternatives ?

Comment résoudre l'erreur de syntaxe EXCEPT de MySQL et trouver des alternatives ?

Linda Hamilton
Libérer: 2024-12-31 08:24:13
original
672 Les gens l'ont consulté

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

Erreur de syntaxe MySQL EXCEPT : résolution et alternatives

L'erreur rencontrée lors de la tentative d'exécution de la requête avec l'opérateur EXCEPT dans MySQL est due à son manque de prise en charge de cette syntaxe.

Pour surmonter ce problème, envisagez d'utiliser des approches alternatives telles que NOT IN ou LEFT JOIN :

SELECT s.sno 
FROM students s
WHERE s.sno NOT IN 
(
    SELECT t.sno 
    FROM take t 
    WHERE t.cno = 'CS112'
);
Copier après la connexion

Alternativement, vous pouvez utiliser un LEFT JOIN :

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

Démonstration avec des tables temporaires :

Pour illustrer l'efficacité Parmi ces alternatives, créons des tables temporaires avec des exemples de données :

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'
Copier après la connexion

Cette requête doit renvoyer le étudiants numéros 5 à 10.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal