2 Fremdschlüssel auf dieselbe Tabelle
SQLer
- datenbank
0 Siechfred0 Vinzenz Mai0 SQLer
0 King^Lully
Hi,
ich hab folgendes Problem:
Ein User kann 2 Arbeitsplätzen (arbeit_int, arbeit_ext)zugeordnet sein, und ich möchte in einem Statement die User-Id und beide Arbeitsplätze-Namen selektieren:
User
----
id
Name
arbeit_int
arbeit_ext
Arbeitsplatz
----
id
Name
Ich hab keine Ahnung wie ich das machen soll....
Ein User kann 2 Arbeitsplätzen (arbeit_int, arbeit_ext)zugeordnet sein, und ich möchte in einem Statement die User-Id und beide Arbeitsplätze-Namen selektieren:
Welches Datenbanksystem in welcher Version? Ansonsten:
Siechfred
Hallo,
Ein User kann 2 Arbeitsplätzen (arbeit_int, arbeit_ext)zugeordnet sein, und ich möchte in einem Statement die User-Id und beide Arbeitsplätze-Namen selektieren:
User
id
Name
arbeit_int
arbeit_extArbeitsplatz
id
Name
das habe ich in diesem Archivposting erläutert. Arbeite mit Aliasnamen und joine die Arbeitsplatztabelle zweimal mit der Usertabelle.
Es ist übrigens eine gute Idee, das Primärschlüsselfeld nicht einfach id,
sondern z.B. user_id und arbeitsplatz_id zu nennen.
Mit freundlichen Grüßen
Vinzenz
das habe ich in diesem Archivposting erläutert. Arbeite mit Aliasnamen und joine die Arbeitsplatztabelle zweimal mit der Usertabelle.
Es ist übrigens eine gute Idee, das Primärschlüsselfeld nicht einfach id,
sondern z.B. user_id und arbeitsplatz_id zu nennen.Mit freundlichen Grüßen
Vinzenz
Hi Vinzenz,
vielen Dank, ich denke damit kann ich das Problem lösen.
Ist ja eigentlich simpel, aber da muss man erst drauf kommen ;)
cheers
ich hab folgendes Problem:
Ein User kann 2 Arbeitsplätzen (arbeit_int, arbeit_ext)zugeordnet sein, und ich möchte in einem Statement die User-Id und beide Arbeitsplätze-Namen selektieren:User
id
Name
arbeit_int
arbeit_extArbeitsplatz
id
Name
Wir sollten da erst einmal das Datendesign betrachten. Wir haben bisher die Entitäten "Benutzer" und "Arbeitsplätze".
Jetzt besteht zwischen den Entitäten welche Beziehung? Ein Benutzer kann zwei Arbeitsplätze haben. Das hört sich schon besser (einfacher) an als "Ein User kann 2 Arbeitsplätzen zugeordnet sein.".
Hast Du schon mal bspw. sowas probiert:
SELECT
User.id,
User.Name,
Arbeitsplatz1.Name,
Arbeitsplatz2.Name
FROM
User
JOIN
Arbeitsplatz ON (Arbeitsplatz.id = User.arbeit_int) AS Arbeitsplatz1
JOIN
Arbeitsplatz ON (Arbeitsplatz.id = User.arbeit_ext) AS Arbeitsplatz2
ORDER BY
User.id ASC