Johnny B.: Frage zum Query mit verschachtelten Subselects

Beitrag lesen

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