There was a problem loading the comments.

I'm getting SQL errors on MySQL 5 saying it can't find a column - but it's there!

Support Portal  »  Knowledgebase  »  Viewing Article

  Print
1054 - Unknown column 'a.c' in 'on clause'

This can happen if you're doing something like:

SELECT * FROM a, b LEFT JOIN c ON a.d = c.e;

...which looks, on the surface of it, fine. But it's invalid SQL; bugs in earlier versions of MySQL (4.x) caused it to be parsed as above and appear to work, but the SQL standard says it should be read as:

SELECT * FROM a, b LEFT JOIN c ON a.d = c.e;

...and you can see that the LEFT JOIN no longer makes any sense. So, to fix your SQL, you need to either move the JOIN statement so it's between the two tables it's joining:

SELECT * FROM a LEFT JOIN c ON a.d = c.e, b;

...or explicitly group like ((a,b),c) instead of (a,(b,c)):

SELECT * FROM (a, b) LEFT JOIN c ON a.d = c.e;

Share via
Did you find this article useful?  

Related Articles

© Eco Web Hosting