Join-Abfrage über drei Beziehungstabellen

Status
Dieses Thema wurde gelöst! Zur Lösung gehen…

jellix

Grünschnabel
Hallo,
meine Daten sind über vier Tabellen miteinander verknüpft (mir wurde eine fremde Datenbank gegeben, ich kann nichts dafür :))
Anbei ein Beispiel eines einzelnen Datensatzes:

tblindex
- DID = 1658
- Title = Name des Eintrags

tbllink
- DID = 1658
- CID = 10397
- Type = img

tblcontent
- ID = 10397
- BDID = 1609

tblfile:
- ID = 1609
- Text = Dateiname

Mit welchem Query kann ich zu den Einträgen aus tblindex die Dateinamen aus der tabelle "tblfile" bekommen?
Wichtig ist, dass ich in der Tabelle "tbllink" nur die Einträge berücksichtigen darf, deren Feld "Type" den Wert "img" trägt.
 
Wo genau hat es denn bei dir gehakt? Da sie so kurz ist, hier ausnahmsweise mal eine Komplettlösung ;)

SQL:
SELECT index.DID, index.Title, file.Text
FROM index
JOIN link ON index.DID = link.DID AND link.Type = 'img'
JOIN content ON link.CID = content.ID
JOIN file ON content.BDID = file.ID
(Den Präfix 'tbl' habe ich der Übersichtlichkeit halber überall weggelassen.)
 
Hier dasselbe ohne JOIN sondern "klassisch"

SQL:
SELECT
tblindex.DID,
tblindex.Title,
tblfile.Text

FROM
tblindex,
tbllink,
tblcontent,
tblfile

WHERE
tblindex.DID=tbllink.DID AND
tbllink.type='img' AND
tbllink.CID=tblcontent.ID AND
tblcontent.BDID=tblfile.ID
 
Ich danke euch beiden!
Klappt!

Ich bin noch nicht ganz so bewandert mit "verschachtelten" Queries und musste zunächst mal grundsätzlich verstehen, wie man da ran geht.
 
Was soll an dem Query verschachtelt sein? Das ist straight forward, nix verschachtelt.
Meine grösste SQL-Abfrage ist in Word bei Schriftgrösse 12 über zwei Seiten lang, geht über 12-13 Basistabellen, mit verschachtelten LEFT-JOINS, GROUP BY's, ROW_NUMBER-Funktionen und haste nicht gesehen.
OK, an dem Ding sass ich auch 2-3 Wochen dran, bis ich es hatte... :ROFLMAO:
 
Status
Dieses Thema wurde gelöst! Zur Lösung gehen…
Zurück