Neue Syntax in MySQL 5

mail2mrx

Mitglied
Hallo zusammen,
ich wollte nun endlich einmal den Sprung von MySQL 4 auf MySQL 5 angehen.

Da stolpere ich direkt über folgende Code:
Code:
SELECT k2.BK_ID, COUNT(b.B_ID) AS anzBilder 
FROM bb_bilder_kategorien AS k1, bb_bilder_kategorien AS k2, bb_user AS u 
LEFT JOIN bb_bilder AS b ON (b.KATEGORIE = k2.BK_ID) 
WHERE k2.PARENT = k1.BK_ID 
AND u.U_ID = 1 
AND b.create_date > u.last_visit 
GROUP BY k2.BK_ID

Als Fehler bekomme ich "Unknown column 'k2.BK_ID' in 'on clause'"

Da der Befehl früher geklappt hat, gehe ich mal von einer neuen Syntax aus, allerdings habe ich nichts dergleichen in der Dokumentation gefunden. Hat jmd. eine Idee

Vielen Dank im Voraus!

Alex
 
Zuletzt bearbeitet:
Hi

Also dass sich die Syntax von einer Version auf die Andere ändert, halte ich für sehr unwahrscheinlich.
Außerdem weißt der Fehler auf etwas ganz anderes hin. Nämlich das eine Spalte nicht gefunden wurde. Und zwar die Spalte BK_ID in der Tabelle bb_bilder_kategorien.
 
Ich gebe Dir in sofern Recht, dass ich die Syntaxänderung auch für nicht wahrscheinlich halte, aber es ist ein Fakt, dass dieser Befehl unter MySQL 4 noch lief. Wahrscheinlich werden in MySQL 5 einige Sachen stärker geprüft...

Ich habe gerade herausgefunden, dass folgender Code funktioniert:

Code:
SELECT k2.BK_ID, COUNT( b.B_ID ) AS anzBilder
FROM bb_user AS u, bb_bilder_kategorien AS k1, bb_bilder_kategorien AS k2
LEFT JOIN bb_bilder AS b ON ( b.KATEGORIE = k2.BK_ID )
WHERE k2.PARENT = k1.BK_ID
AND u.U_ID =1
AND b.create_date > u.last_visit
GROUP BY k2.BK_ID

Warum, weiß ich allerdings auch nicht.Wieso findet er jetzt die Spalte BK_ID, und vorher nicht. Nur wegen der anderen Position des Strings "bb_user AS u"

:confused:

Trotzdem schon mal danke für Deine Antwort.

Gruß Alex
 
Zuletzt bearbeitet:
Es liegt wohl wirklich daran, dass vor einem JOIN Statement nur die Tabelle angegeben werden kann, die im JOIN benutzt wird.

Warum das so ist, weß ich zwar nicht aber so funktioniert es fürs erste...
 

Neue Beiträge

Zurück