AS gesehen: Ist dahinter ein Spaltenname.
Kein AS gesehen: Ist dahinter ein Tabellenalias.
Das ist vielleicht für Dich selbst so festgelegt.
Laut Deiner Definition soll also folgendes möglich sein?
LEFT JOIN country_names
AS cn
ON cn.cn_cid = c.country_id
AND cn.cn_lang = l.lang_id
,
Ist denn country_names ein Spaltenname, dessen Alias man mit oder ohne As angeben kann?
Also nochmal ein Versuch:
Ein Komma darf es nur geben, wenn es auch ein AS zur Benennung eines Alias zu einem Spaltennamen gibt, ansonst könnte das Komma falsch sein, vorausgesetzt, dass das AS ist richtig.
Wenn ich z. B. eine Tabelle habe, die AS heißt oder einen Spaltenalias, den ich AS nenne oder eine Spalte, die AS heißt, könnte durchaus die Möglichkeit bestehen, dass meine Regel, die ich nur zur Vereinfachung der Fehlersuche nutze, nicht zwingend 100%ig zutreffend ist.
Frei nach dem Motto: Ausnahmen bestätigen die Regel