Online Support from Domainscape

 

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

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;

Return to category list

 

 

 

Every attempt has been made to ensure that all information, opinions and guidance notes are accurate, comprehensive, verified and complete.

We accept no liability whatsoever for any perceived inaccuracy or incompleteness of the information contained in the Web Site or for any reliance placed by any person on the information.

 

Copyright ©2008
Domainscape Internet
All rights reserved