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
Ich verstehe immer noch nicht die Frage. Was ist Los mit der
Das problem ist, dass es bei mir nicht funktioniert. Zum Beispiel bekomme ich
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
AbfrageInformationsquelleAutor CHEBURASHKA | 2013-08-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin mir ziemlich sicher, dass das problem liegt in der Art und Weise Sie treten die korrelierte Unterabfrage auf orderid = orderid. Ich bin nicht vertraut mit diesem Datensatz, aber es scheint überraschend, dass die gleiche Bestellung hätte andere Versandfirmen, und es fügt eine Bedingung, die nicht in Ihre "richtige" Antwort. Sollte dies funktionieren:
InformationsquelleAutor prekolna