Zur Navigation

Join über 4 Tabellen

1 AndiN

Hallo zusammen,

ich habe vier SQL Tabellen (bestellungen, kunden, rechnungsadresse und lieferadresse) welche wie folgt miteinander verknüpft werden sollen:

bestellungen.KundenID = kunden.ID
bestellungen.RadressID = rechnungsadresse.ID
bestellungen.LadressID = lieferadresse.ID

Folgendes habe ich versucht:

SELECT
DB1.Produkt,
DB1.Anzahl,
DB1.Preis,
DB2.Name,
DB2.Ort,
DB3.Name,
DB3.Ort,
DB4.Name,
DB4.Ort
FROM (shop_bestellungen AS DB1 INNER JOIN shop_kunden AS DB2 ON DB1.KundenID = DB2.ID)
JOIN (shop_bestellungen AS DB1 INNER JOIN shop_lieferadressen AS DB3 ON DB1.KundenID = DB3.ID)
JOIN (shop_bestellungen AS DB1 INNER JOIN shop_rechnungsadressen AS DB4 ON DB1.KundenID = DB4.ID)
WHERE DB1.ID = '".$ID."'

Da bringt er mir den Fehler

Not unique table/alias: 'DB1'

Was ich vermute ist, dass das JOIN zwischen den Klammern falsch ist und die mehrfachen "shop_bestellungen AS DB1"-Definitionen vor den INNER JOINs sich evtl. gegenseitig ärgern. Hat mir da jemand einen Tipp?

Gruß,
Andreas

07.12.2010 16:01

2 Jörg

Du kannst nur einmal einen Alias mit dem Namen 'DB1' definieren.

Davon ab, verstehe ich den Sinn dieser JOIN-Verschachtelung auch nicht ganz. Ich würde die JOINS so formulieren:

FROM shop_bestellungen AS DB1
INNER JOIN shop_kunden AS DB2 ON DB1.KundenID = DB2.ID
INNER JOIN shop_lieferadressen AS DB3 ON DB1.KundenID = DB3.ID
INNER JOIN shop_rechnungsadressen AS DB4 ON DB1.KundenID = DB4.ID

07.12.2010 16:22

3 AndiN

So funktionierts. Danke !!!

07.12.2010 16:53

Beitrag schreiben (als Gast)





[BBCode-Hilfe]