Originariamente inviato da darkmavis
Sono di nuovo qui, questa volta ho un problema con una left join che non mi vede un campo, la query è la seguente

SELECT an_news.*, an_utenti.username, an_utenti.id AS userid, rel_news_cat.codcat
FROM an_news, rel_news_cat, an_utenti
LEFT JOIN addfield_data
ON addfield_data.codelement = rel_news_cat.codcat
AND addfield_data.codlabel = 116
WHERE an_news.erase = 0
AND rel_news_cat.codnews = an_news.id
AND an_utenti.id = an_news.codautore
AND an_news.published = 1
AND (addfield_data.valore = '0' OR addfield_data.valoreint = 0)
AND an_news.codlingua = 1
AND rel_news_cat.codcat != 9
GROUP BY an_news.id
ORDER BY an_news.datanews DESC, an_news.id DESC
LIMIT 6

e l'errore restituito è "Unknown column 'rel_news_cat.codcat' in 'on clause'"
Com'è possibile che non veda codcat? Non riesco a spiegarmelo :-|
Sinceramente non mi è mai capitato né di usare, né di vedere usato un prodotto cartesiano seguito da un left join e non so neanche se sia possibile. Comunque:

FROM an_news, rel_news_cat, an_utenti
LEFT JOIN addfield_data
ON addfield_data.codelement = rel_news_cat.codcat
AND addfield_data.codlabel = 116

qui c'è sicuramente un errore. Innanzitutto la sintassi del join prevede:

TAB_A LEFT JOIN TAB_B ON condizione che riguarda le 2 tabelle

quindi al limite dovresti scrivere:

rel_news_cat LEFT JOIN addfield_data

poi AND ........... che vuol dire? Tale condizione va inserita nella WHERE