Abfrage mit Unterabfrage bei 1:n

19/10/2009 - 21:39 von Reiner Hochmuth | Report spam
Guten Abend NG,

jetzt kommt mal wieder eine Frage von mir wo ich auf der Leitung stehe.

Ich habe eine Tabelle mit z.B. Autos
und dann eine 2. Tabelle mit den Ausstattungen (1:n Beziehungen).

Jetzt möchte ich eine Liste mit allen Autos und der zugehörigen Ausstattung?

Also z.B.

Audi A6; 'Xenon, Navi, Klima'

Kann ich sowas machen und wenn ja wie?

Vielen Dank im voraus.

Gruss
Reiner
 

Lesen sie die antworten

#1 Christoph Ingenhaag
20/10/2009 - 09:44 | Warnen spam
Hallo Reiner,

mit SQL Server ab Version 2005 ginge es z.B. so


create table #Autos
(
id int not NULL primary key
,auto varchar(10)
)

create table #Ausstattung
(
id int not NULL primary key
,fk int
,beschreibung varchar(50)
,constraint fk foreign key(fk) references #Autos(id) --überfl. für temp.
Tab.
)

insert into #Autos
select 1,'Audi' union all
select 2,'BMW' union all
select 3,'VW'

insert into #Ausstattung
select 1, 1, 'Reifen' union all
select 2, 1, 'Auspuff' union all
select 3, 1, 'Lenkrad' union all
select 4, 2, '4 Ràder' union all
select 5, 2, 'mit Sitzen' union all
select 6, 3, 'gar nix'


select
auto
,substring(austattung, 2, 2147483647)
from #Autos a
cross apply
(
select
',' + beschreibung
from #Ausstattung t
where
t.fk = a.id
for xml path('')
) s(austattung)

ergibt:
Audi Reifen,Auspuff,Lenkrad
BMW 4 Ràder,mit Sitzen
VW gar nix

Viele Grüße
Christoph

"Reiner Hochmuth" schrieb im Newsbeitrag
news:
Guten Abend NG,

jetzt kommt mal wieder eine Frage von mir wo ich auf der Leitung stehe.

Ich habe eine Tabelle mit z.B. Autos
und dann eine 2. Tabelle mit den Ausstattungen (1:n Beziehungen).

Jetzt möchte ich eine Liste mit allen Autos und der zugehörigen
Ausstattung?

Also z.B.

Audi A6; 'Xenon, Navi, Klima'

Kann ich sowas machen und wenn ja wie?

Vielen Dank im voraus.

Gruss
Reiner

Ähnliche fragen