dedlfix: MySQL: Subselects übergreifend

Beitrag lesen

Hi!

SELECT

IFNULL(subcats, catid)
FROM
(SELECT t3.id AS catid FROM cats AS t3 WHERE t3.name='Akrobatik') AS ids,
(SELECT t1.name AS subcats  FROM cats AS t1  WHERE t1.subcategoryid = catid) AS names


>   
> Dieser Query klappt nicht:  
> Unknown column 'catid' in 'where clause'  
  
Alias-Namen und andere Dinge aus der SELECT-Klausel stehen in der WHERE-Klausel noch nicht zur Verfügung oder besser gesagt: zum Zeitpunt der WHERE-Klausel-Auswertung) erst HAVING kann darauf zugreifen. Außerdem bist du hier erst im FROM und ohne dass bereits eine Verknüpfung ausgeführt wurde. Die beiden Teilmengen müssen sich unabhängig voneinander ermitteln lassen. Erst dann kann man sie miteinander in Verbindung bringen (im äußeren WHERE oder durch Joins). Reicht das fürs erste, damit du weißt, in welche Richtung der Umbau der Query gehen muss?  
  
  
Lo!