# MySQL und NOT EXISTS



## Wang (30. Dez 2011)

Hallo allerseits,

ich habe leider einige Schwierigkeiten, die Funktionsweise von NOT EXISTS bei dieser Aufgabe nachzuvollziehen







Zunächst mal die Lösung zur (a), denn ich denke wenn ich die verstanden habe, sollte ich auch die (b) verstehen:


```
SELECT lname
FROM L
WHERE NOT EXISTS (SELECT *
				FROM P
				WHERE ort='Berlin'
				AND NOT EXISTS (SELECT *
								FROM LTP
								WHERE L.lnr=LTP.lnr
								AND P.pnr=LTP.pnr));
```

Es wäre sehr nett, wenn hier jemand schreiben könnte, warum der obige Code zum gewünschten Ergebnis führt, denn ich stehe leider total auf der Strecke.

Danke für Eure Mühe!

Gruß
Wang


----------



## pro2 (30. Dez 2011)

MySQL :: MySQL 5.1 Referenzhandbuch :: 13.2.8.6 EXISTS und NOT EXISTS
Das schon mal durchgelesen? Erklärt das eigentlich ganz gut und ist mehr oder weniger ein gleiches Beispiel, mit anderen Inhalten. Siehe vor allem den letzten Satz


----------



## Wang (30. Dez 2011)

Jo, das hatte ich mir schon durchgelesen, leider stehe ich aber noch immer auf dem Schlauch...

NOT EXISTS liefert "true" zurück, wenn die Unterabfrage keine Datensätze ergibt; nachdem es aber in der Relation ''P" zwei Orte mit BERLIN gibt, liefert NOT EXISTS "false" zurück. Genau das bereitet mir am meisten Kopfschmerzen... Vielleicht kann jemand den SQL-Code bitte in Worte "übersetzen"...?


----------



## Wang (31. Dez 2011)

Kurze Info: ich habe es endlich kapiert! 
Der Kommentar von ersin yilmaz hat den Ausschlag gegeben:

MySQL :: MySQL 5.6 Reference Manual :: 12.2.10.6 Subqueries with EXISTS or NOT EXISTS

Danke an alle Interessierten und ein gutes neues Jahr! :toll:

Gruß
Wang


----------

