Hallo geehrtes Forum,
das Normalisieren der DB hat es mit sich gebracht, daß ich nun zwei Ebenen runter muß mit meiner Abfrage. Also verschachtelte Subselects?!
In der Tabelle 'statistik' gibt es eine Spalte 'aktion_id'.
In der Tabelle 'aktionen' ist 'aktion_id' die primary id. Dieser ist jeweils eine 'typ_id' und 'typ' zugeordnet. 'typ' ist der Name der nächsten Tabelle, z.B. 'zeitungen'
In der Tabelle 'zeitungen' ist die 'typ_id' die primary id. Hier gibt es die Spalte 'beschreibung', an die ich heran möchte.
Die Abfrage, die mir dazu einfiel:
SELECT aktion_id, -- hole aktion_id
( SELECT beschreibung -- hole beschreibung
FROM ( SELECT typ -- aus der tabelle
FROM aktionen -- die in typ gespeichert ist
WHERE id = aktion_id
) tmp -- alias gegen derived table error
WHERE id = -- und zwar von der id
( SELECT typ_id -- die in aktionen
FROM aktionen -- als typ_id hinterlegt ist
WHERE id = aktion_id
)
)
FROM statistik
WHERE $datum_passt
Erstaunlicherweise (at least für mich) erhalte ich folgende Fehlermeldung:
Unknown column 'aktion_id' in 'where clause'.
Ich google ein wenig und setze 'aktion_id' in Hochkomma, obschon mich das Gefühl beschleicht, hiermit der Lösung nicht näher gekommen zu sein. Die Fehlermeldung ändert sich daraufhin zu:
Unknown column 'beschreibung' in 'field list'
Dabei ist in jeder Tabelle, für die ein Wert in 'typ' gespeichert ist, die Spalte 'beschreibung' vorhanden. Gibt der Subselect, der 'typ' ausliest, falsche Werte zurück? Es gibt nur vier mögliche Werte, die 'typ' haben kann.
Was läuft hier schief? Kann mich jemand entwirren?
Besten Gruß
JOhnnY