PDA

Vollständige Version anzeigen : Und Verknüpfung über mehrere Datensätze


Armin.H
18.01.2008, 09:57
Hallo,
habe folgendes Problem:
In einer Literaturdatenbank wird jedem Buchtitel ein oder mehrere Schlagwörter zugeordnet. Dies wird durch folgende Tabellen realisiert

------------------------------------------
D_Titel:
TitelId (Autowert;PrimKey)
Titel (Text)

D_Schlagwörter:
Schlagwortid
Schlagwort

D_TitelSchlagwörter
Titelid
SchlagwortID
------------------------------------

Nun möchte ich alle Titel haben, welchen die Schlagwörter "ACCESS" UND "SQL" zugeordnet sind.

Weiß jemand wie man dies Abfrage formulieren muss ?

Danke und Grüße

Armin

Josef P.
18.01.2008, 11:03
mir fallen dazu 2 Ansätze ein:

1. per gruppierter Abfrage:
SELECT Titelid
from
D_TitelSchlagwörter TS
INNER JOIN
D_Schlagwörter S
ON TS.SchlagwortID = S.SchlagwortID
WHERE
S.Schlagwort IN ('ACCESS', 'SQL')
Group By
Titelid
Having
Count(TS.*) = 2
... wobei ich dazu neige direkt die SchlagwortID statt dem Schlagwort als Filterbedingung zu nutzen.

2. inner join
SELECT TS1.Titelid
from
D_TitelSchlagwörter TS1
INNER JOIN
D_TitelSchlagwörter TS2
ON TS1.Titelid= TS2.Titelid
WHERE
TS1.Schlagwortid = 123
AND
TS2.Schlagwortid = 456

Armin.H
22.01.2008, 11:53
vielen Dank, habe mich für Variante zwei entschieden.

Grüße

Armin