Duplicate column name on JOIN in mysql
19,467
You need to provide aliased column in inner query
SELECT COUNT( * )
FROM (
SELECT t.*
FROM `user` `t`
JOIN `user_relation` r ON ( t.user_id = r.follower_id
OR t.user_id = r.user_id )
WHERE r.status = "active"
AND (
r.user_id =125
OR r.follower_id =125
)
AND t.user_id !=125
GROUP BY t.username
)sq
Since you are interested in count(*)
only you can return either t.*
or r.*
or any one column , the condition being that column names in inner query MUST be unique or if are same in both tables than prefixed with table alias name.
Author by
cypher75
I'm a programmer from germany. Programming Websites, Onlineshops, Newsletter, CMS
Updated on June 17, 2022Comments
-
cypher75 almost 2 years
I've got a problem with this sql
SELECT COUNT( * ) FROM ( SELECT * FROM `user` `t` JOIN `user_relation` r ON ( t.user_id = r.follower_id OR t.user_id = r.user_id ) WHERE r.status = "active" AND ( r.user_id =125 OR r.follower_id =125 ) AND t.user_id !=125 GROUP BY t.username )sq
I always get an error: "#1060 - Duplicate column name 'user_id' " Can anyone help/explain, what I did wrong?
Thanks in advance Jan