Ich habe eine Frage über die SQL-Abfrage meines Lehrers. Wir versuchen Studenten zu finden, die sich für CS bewerben, aber nicht für EE.SQL-Abfrage, die Probleme mit
Select sID, sName
From Student
Where sID = any (select sID from Apply where major = ‘CS’)
And sID <> any (select sID from Apply where major = ‘EE’)
Die obige Abfrage ist anscheinend falsch. Ich verstehe, warum es falsch ist. Wir erhalten sIDs von Studenten, die sich nicht für EE bewerben, unabhängig davon, ob sie sich auf CS bewerben.
Die folgende Abfrage ist offenbar die richtige Abfrage. Warum funktioniert die folgende Abfrage?
Select sID, sName
From Student
Where sID = any (select sID from Apply where major = ‘CS’)
And not sID = any (select sID from Apply where major = ‘EE’)
Sie sind beide richtig. Weder ist syntaktisch ungültig. 'Und nicht .. = ...' verhält sich genauso wie 'Und ... <> ...' – Siyual