Forum: SQL |
Thema:
Re: SELECT statement |
Von:
Thomas Golla (
18.02.2005 10:48) |
Hi Marcus :-)
Man nehme mal zwei von deinen Tabellen. Personen und Telefon.
Personen (id, name, vorname)
Telefon (personenid, nummer, typ)
Als typ definiere ich mal 4 verschiedene: work, mobile, private und fax (ist für die SQL-Abfrage wichtig)
In der Tabelle Personen steht (ID, name, vorname):
1, Golla, Thomas
2, Boskop, Bossi
In der Tabelle Telefon steht (personenid, nummer, typ):
1, 0532612346, private
1, 0171253669, mobile
1, 05326987654, fax
2, 0123456789, private
2, 0369695847, work
Mit der nachfolgenden SQl-Abfrage bekommt man das erwünschte (hoffe ich doch mal) Ergebnis:
select personen.id, personen.name, personen.vorname,
(select telefon.nummer from telefon where telefon.personenid = personen.id and typ = 'work') as 'work',
(select telefon.nummer from telefon where telefon.personenid = personen.id and typ = 'mobile') as 'mobile',
(select telefon.nummer from telefon where telefon.personenid = personen.id and typ = 'private') as 'private',
(select telefon.nummer from telefon where telefon.personenid = personen.id and typ = 'fax') as 'fax'
from personen
order by 2
Ergebnis (id, name, vorname, work, mobile, private, fax):
2, Boskop, Bossi, 0369695847, NULL, 0123456789, NULL
1, Golla, Thomas, NULL, 0171253669, 0532612346, 05326987654
Die SQL-Anweisung nun noch nach deinen Vorstellungen (Tabelle Firma z.B.) zu erweitern dürfte nun nicht mehr das Problem sein, oder?
Wichtig ist nur, dass in der Tabelle Telefon an den definierten Typen festgehalten wird, bzw. die SQL-Abfrage erweitert/geändert wird wenn sich die Typen ändern.
Hoffe geholfen bzw. die Frage richtig verstanden zu haben :-)
LG
Tom
Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!