This question already has an answer here:
- MySQL unknown column in ON clause 3 answers
I have the following MySQL query:
SELECT posts.id, posts.name, LEFT(posts.content, 400), posts.author, posts.date, users.display_name,
GROUP_CONCAT(tags.tag ORDER BY tag_linking.pid ASC SEPARATOR ",") update_tags
FROM posts, tag_linking, tags
INNER JOIN `users`
ON posts.author=users.id;
WHERE tag_linking.pid = posts.id
AND tags.id = tag_linking.tid
ORDER BY posts.date DESC
Which, was you can see, connects three tables etc. etc. Anyway, the problem is that it gives an error:
ERROR CODE:
SQL Error (1054): Unknown column 'posts.author' in 'on clause'
even though this simpler query used on another page works:
SELECT posts.id, posts.name, LEFT(posts.content, 400), posts.author, posts.date, users.display_name FROM `posts`
INNER JOIN `users`
ON posts.author=users.id
Does anyone have thoughts as to why this is occuring? Thanks for your help.
Giving an alias to your tables in
from
clause and surrounding them with parentheses would make it work. But mixing joins is still a bad practice.is it that semi colon you have
ON posts.author=users.id;
It simply says that author does not exist in post table. either a spelling mistake??
because your mix join syntax
From Mysql
[docs]the solution is: