MySQL4 -> MySQL5: Syntaxprobleme

professor

New Member
Hallo,

ich möchte gern meine Server updaten auf PHP5 und MySQL5. Technisch ist (war) das kein Problem, es läuft alles einwandfrei.

Kann mir jemand die korrekter MySQL5 - Syntax für folgende Abfrage nennen? Ich habe schon so viel gegooglet, aber irgendwie finde ich mich nicht zurecht ...

Hier die bisherige Syntax unter MySQL4:
Code:
SELECT c1.id, COUNT(p.id) AS total 
FROM immo_user AS u, immo_category AS c1, immo_category AS c2 
LEFT JOIN immo_property AS p 
ON c1.id = p.category_id 
WHERE c1.lft != 1 
AND c1.lft 
BETWEEN c2.lft 
AND c2.rgt 
AND (c2.id != c1.id OR c1.lft = 1) 
AND p.activated = 1 
AND p.status = 'A' 
AND u.id = p.user_id 
AND u.status <> 'P' 
AND u.status <> 'B' 
GROUP BY c1.id 
ORDER BY c1.lft

Die läuft wie gesagt unter MySQL4 einwandfrei, unter Version 5 gibt es dann aber logischer Weise folgende

Fehlermeldung:
Code:
Fatal error: mysql error: [1054: Unknown column 'c1.id' in 'on clause']

Dass es nichts mit den Datenbankinhalten zu tun hat weiß ich, es geht also "nur" um die richtige Formulierung!

Ohne diese grundsätzliche Geschichte kann ich natürlich meine Server nicht umstellen, muss es also erst "kapieren" :-).

Vielen Dank vorab,
Gruß Tom
 
Code:
FROM immo_user AS u, immo_category AS c1, immo_category AS c2
Du weist hier c1 und c2 als alias für immo_category zu. MySQL merkt sich in diesem Fall nur das zuletzt genannte Alias.
 
Back
Top