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
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With