Hi Oliver,
außer dem herstellername-problem enthält dein code noch einen Fehler:
where stereoanlage.id=1
… kann nicht gehen, deine Komponenten-Tabellen enthalten keine stereoanlage_id, und die Tabelle stereoanlage kommt im select gar nicht vor - das wird vom mysql bereits mit ‚Unknown column‘ abgelehnt.
Du brauchst ein ziemlich kompliziertes und langes Statement, da empfehlen sich Aliasnamen für die Tabellen.
Weiterhin benötigt jede Komponente ihren eigenen Herstellernamen, der über [komponente].hersteller_id = hersteller.id gefunden wird. Da das Feld in hersteller immer firmenname heisst, muss es bei Mehrfachverwendung in einem select ebenfalls mit unterschiedlichen Aliassen versehen werden. Und schließlich muss die Tabelle hersteller mit jeder komponente separat verknüpft werden, damit sind Tabellen-Aliasse sowieso zwingend.
Bei der alias-Syntax ist noch zu beachten, dass die Tabellen-Aliasse im FROM definiert werden, aber im SELECT bereits verwendet werden können.
Also…
SELECT
– evtl. irgendwas „eigenes“ aus stereoanagen
S.name, S.preis,
– Komponenten und zugehöriger Hersteller
V.*, H_V.firmenname AS verst_hersteller,
B.*, H_B.firmenname AS boxen_hersteller,
D.*, H_D.firmenname AS dvdpl_hersteller
FROM
stereoanagen AS S,
verstaerker AS V,
hersteller AS H_V,
boxen AS B,
hersteller AS H_B,
dvdplayer AS D,
hersteller AS H_D
WHERE
V.id = S.verstaerker_id
AND
H_V.id = V.hersteller_id
AND
B.id = S.boxen_id
AND
H_B.id = B.hersteller_id
AND
D.id = S.dvdplayer_id
AND
H_D.id = D.hersteller_id
AND
– evtl. eine bestimmte anlage, sonst alle
S.id = 1
lass mal hören, ob’s tut …
Gruß
Thomas