Ich habe eine Datenbank mit mehreren Tabellen, u.a.
1 | beobachtungen: Titel, PosID
|
2 | locations: PosID, Lat, Lng
|
Die Abfrage (1)
1 | select PosId from locations where Lat > 49.123 and Lat < 49.124 and Lng > 8.390 and Lng < 8.391;
|
spuckt eine Liste mit 40 Locations aus.
Nun will ich eine Liste aller Einträge aus beobachtungen, deren PosID in
der Liste der Abfrage (1) vorkommt.
Die Abfrage lautet (2):
1 | select * from beobachtungen where Titel="Frosch" and PosID=(
|
2 | select PosID from locations where Lat > 49.123 and Lat < 49.124 and
|
3 | Lng > 8.390 and Lng < 8.391);
|
Nun wundere ich mich, warum die Ergebnistabelle nur 1 Zeile¹ enthält,
obwohl die Abfrage (3)
1 | select * from beobachtungen where Titel="Frosch";
|
302 Zeilen liefert und alle Zeilen mit den PosIDs aus (1) enthalten
sind.
Wo ist der Fehler?
---
¹) Es ist die erste Zeile aus (3), die die erste PosID aus (1) enthält.