MySQL - COUNT AS wert kann nicht im Where verwendet werden

Gray

Erfahrenes Mitglied
Hi,

ich habe folgendes Problem.

Aktuell sieht mein Query wie folgt aus:

Code:
SELECT COUNT(prio) AS anzahl, p.kd_id FROM keywords k JOIN projekt p ON k.p_id = p.p_id WHERE k.prio != '0' AND anzahl < '3' GROUP BY p.website ORDER BY p.p_id

Nun habe ich das Problem das mir folgende Fehlermeldung angezeigt wird:

Code:
#1054 - Unknown column 'anzahl' in 'where clause'

Ich habe Testweise k.anzahl und p.anzahl versucht aber dies führt zum gleichen Ergebnis.

Wie kann ich "anzahl" im WHERE verwenden?
 
Item: Zahlen sollten als Zahlen behandelt werden. Wenn das Feld prio als Zahl dekleriert ist, dann sollte um die 0 herum keine ' sein

Item: Tipp am Rande: Formatiere dein SQL. Es wird lesbar, glaub mir

Item: WHERE wird vor dem GROUP BY verarbeitet.
HAVING nach dem GROUP BY. Darum solte diese Bedinung in den HAVING

SQL:
SELECT 
	COUNT(prio) AS anzahl, 
	p.kd_id 
FROM 
	keywords k 
	JOIN projekt p 
		ON k.p_id = p.p_id 
WHERE 
	-- Wenn prio als Zahl definiert ist, dann ohne die ''
	k.prio != '0' 
GROUP BY 
	p.website 
HAVING
	-- COUNT() ist eine Zahl ergo ohne ''
	COUNT(prio) < 3 
ORDER BY 
	p.p_id
 
Zuletzt bearbeitet von einem Moderator:

Neue Beiträge

Zurück