Wie zu verwenden nicht vorhanden ist, in einer sql-Abfrage mit w3schools?

Ich habe ein Problem mit not exists sql-Abfrage an w3schools

Möchte ich select alle Kunden, die Arbeit mit shipperid = 1 ABER nicht shipperid = 3.
Ich habe versucht, die folgenden:

select o1.customerid, o1.shipperid
from orders o1
where o1.shipperid=1 and not exists
(select o2.customerid from orders o2
where o1.orderid=o2.orderid
and o2.shipperid=3)
order by customerid
;

Obige Abfrage gibt alle Kunden, die Arbeit mit shipperid = 1 und schließt NICHT aus, Kunden, die Arbeit mit shipperid = 3. Was ist nicht richtig mit der Abfrage. (Ich muss speifically verwenden not exists)


PS: ich weiß das in Lösung:

select customerid, shipperid
from orders
where shipperid=1 and customerid not in (
select customerid
from orders
where shipperid=3
)
order by customerid;

Warum nicht die not exists Lösung arbeiten?

Sollten Sie daran interessiert sein, die von diese Frage Sie wissen bereits in
Ich verstehe immer noch nicht die Frage. Was ist Los mit der NOT EXISTS(beachten Sie, dass es besser ist als NOT IN finden Sie unter: sqlperformance.com/2012/12/t-sql-queries/left-anti-semi-join).
Das problem ist, dass es bei mir nicht funktioniert. Zum Beispiel bekomme ich customerid Nummer 4 wer arbeitet mit shipperid Nummer 1 als auch Nummer 3. Ich weiß nicht, was ist das problem mit meinem not exists Abfrage

InformationsquelleAutor CHEBURASHKA | 2013-08-12

Schreibe einen Kommentar