Select Statement über 3 Tabellen
Marcus
- datenbank
0 Cheatah
Hallo !
Ich habe folgende Datenbanktabellen
orte
---
plz
ort
kid
Bahn_Zuordnung
--------------
kid
bahnhof1_id
bahnhof1_km
bahnhof2_id
bahnhof2_km
bahnhof3_id
bahnhof3_km
bahnhof4_id
bahnhof4_km
bahnhof5_id
bahnhof5_km
bahnhof6_id
bahnhof6_km
bahnhof7_id
bahnhof7_km
bahnhof
-------
bahnhof_id
bahnhofname
Folgender Hintergrund: Ich möchte wenn ich über die PLZ einen Ort suche, dass mir alle Bahnhöfe (7 Stück) im Umkreis angezeigt werden soll.
Folgendes Statement gibt mir aber immer nur 1 Bahnhof aus:
SELECT orte.*, Bahn_Zuordnung.*, bahnhof.*
FROM (orte INNER JOIN Bahn_Zuordnung ON [orte].[kid]=[Bahn_Zuordnung].[kid]) INNER JOIN bahnhof ON [Bahn_Zuordnung].[bahnhof6_id]=[bahnhof].[bhf_id]
WHERE ((([orte].[plz])='27729'));
Hat jemand eine Idee wie das Statement für 7 Bahnhöfe auszusehen hat ?
Vielen Dank
Gruss
Marcus
Hi,
Bahn_Zuordnung
kid
bahnhof1_id
bahnhof1_km
bahnhof2_id
bahnhof2_km
bahnhof3_id
bahnhof3_km
bahnhof4_id
bahnhof4_km
bahnhof5_id
bahnhof5_km
bahnhof6_id
bahnhof6_km
bahnhof7_id
bahnhof7_km
ei, caramba. Gibt es grundsätzlich _exakt_ sieben Bahnhöfe in der Umgebung? Wenn nicht, ist dies ein klarer Fall für eine n:m-Beziehung:
umgebende_Bahnhoefe
-------------------
ref_ort -- Es macht Sinn, den Namen der referenzierten Tabelle zu nennen.
ref_bahnhof
entfernung
PK ist (ref_ort, ref_bahnhof)
bahnhof
bahnhof_id
bahnhofname
In welchem Ort befindet sich der Bahnhof? Ein ref_ort passt auch hier. Das kollidiert dann auch nicht mit den umgebenden Bahnhöfen.
Folgender Hintergrund: Ich möchte wenn ich über die PLZ einen Ort suche, dass mir alle Bahnhöfe (7 Stück) im Umkreis angezeigt werden soll.
Demnach wäre in der Ort-Tabelle der PK die PLZ?
Folgendes Statement gibt mir aber immer nur 1 Bahnhof aus:
Du musst mich erst davon überzeugen, dass Dein DB-Layout sinnvoll ist, bevor ich versuche, Statements darauf zu reparieren ;-) Vielleicht hilft Dir die neue Struktur, das richtige Statement zu entwickeln.
Cheatah