MYSQL Error... Can anyone help?

Hi there, I am working through a tutorial and I'm at the point of
accepting or declining a friend request.

However, whenever I click accept of decline, I get the following
error:

Mysql::Error: Column 'created_at' in order clause is ambiguous: SELECT
`users`.id FROM `users` INNER JOIN `friendships` ON `users`.id =
`friendships`.friend_id WHERE (`users`.`id` = 115) AND
((`friendships`.user_id = 114) AND ((status = 'requested'))) ORDER BY
created_at LIMIT 1

I've looked through the controller for these 2 actions, but nothing
stands out.

Please can anyone suggest how to fix this?

Many Thanks

Either in your User has_many :friendships declaration or the User.find
that joins :friendships in the controller you have :order =>
"created_at". The RDBMS can't know which table to use for created_at
column, as both have one. You need to specify that.

makes sense i think, but how would i specify it?

Actually, for now - commenting the :order out in User.rb seems to
allow me to continue without issue. :slight_smile:

thanks for the advice - it made me look in the right direction.

makes sense i think, but how would i specify it?

>
>
>
>
>
> > Hi there, I am working through a tutorial and I'm at the point of
> > accepting or declining a friend request.
>
> > However, whenever I click accept of decline, I get the following
> > error:
>
> > Mysql::Error: Column 'created_at' in order clause is ambiguous: SELECT
> > `users`.id FROM `users` INNER JOIN `friendships` ON `users`.id =
> > `friendships`.friend_id WHERE (`users`.`id` = 115) AND
> > ((`friendships`.user_id = 114) AND ((status = 'requested'))) ORDER BY
> > created_at LIMIT 1
>
> > I've looked through the controller for these 2 actions, but nothing
> > stands out.
>
> > Please can anyone suggest how to fix this?
>
> > Many Thanks
>
> Either in your User has_many :friendships declaration or the User.find
> that joins :friendships in the controller you have :order =>
> "created_at". The RDBMS can't know which table to use for created_at
> column, as both have one. You need to specify that.

This is an error in the SQL statement being generated. The created_at
column exists in both the Users and Friendships tables. You need to
indicate the table of the column you want to order by.

Example:
".... ORDER BY users.created_at LIMIT 1"