PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : mehrere Verknüpfungen zwischen zwei Tabellen



stefaan
08-09-2005, 18:48
Servus!

Mit folgendem Problem komme ich an die Grenzen meiner SQL-Kenntnisse, vielleicht könnt ihr mir dabei helfen: ;)

Es geht darum, einem Ereignis mehrere User zuzuordnen, die in einer eigenen Tabelle gespeichert sind. D.h. 3x Vorname aus der user-Tabelle holen.

tbl_user:


mgvnr vorname
123 stefan
234 hans
345 susi
456 seppl


tbl_dienste:


datum user1 user2 user3
8.9. 123 234 345
8.9. 234 345 456
9.9. 123 456 345


Rauskommen soll:


datum vorname1 vorname2 vorname3
8.9. stefan hans susi
8.9. hans susi seppl
9.9. stefan seppl susi


Wie kann ich diese Verknüpfung anlegen und für die Felder jeweils einen Alias?

Danke!

Grüße, Stefan

quinte17
09-09-2005, 06:17
select datum, a.vorname as vorname1, b.vorname as vorname2, c.vorname as vorname3
from tbl.dienste,
tbl_user a,
tbl_user b,
tbl_user c
where user1 = a.mgvnr
and user2 = b.mgvnr
and user3 = c.mgvnr


auf die schnelle funktioniert des bestimmt. vielleicht ist es noch besser die left join syntax zu verwenden, aber die darfst du zur übung selbst machen ;)

noch viel spaß mit sql
greetz

mwanaheri
09-09-2005, 07:21
Bist du sicher, dass einem Ereignis nie mehr als 3 user zugeordnet werden können? Sonst wird diese Tabelle nämlich unpraktisch.

Pingu
09-09-2005, 08:12
Mach Dich bitte erst einmal mit der Normalisierung vertraut. Hier ein kleines Tutorial: http://little-idiot.de/mysql/mysql-258.html

Pingu

`kk
09-09-2005, 11:59
Also ich hasse SQL, aber das sieht nach ner N zu M-Beziehung aus.
Ich wuerde eine dritte Tabelle anlegen mit zwei Primaerschluesseln (T1 und T2) auf jeweils eine Tabelle.

Gruß
Kai