Hey Jeremy, you are correct -- without the limit the count is successful. Unfortunately I do need to limit the size of the dataset (a limit value of 1 was for purposes of demonstration). I'll give your other approach a try.
On Apr 13, 12:59 pm, Jeremy Evans <[email protected]> wrote: > On Apr 13, 12:28 pm, Phil Crosby <[email protected]> wrote: > > > Hey Jeremy, thanks for your alternative; I'll try it shortly. For > > completeness, here is the stacktrace + SQL log: > > > movies = Movie.join(:movies_labels, :movie_id => :id).limit(1).first > > (0.00) SELECT * FROM `movies` INNER JOIN `movies_labels` ON > > (`movies_labels`.`movie_id` = `movies`.`id`) LIMIT > > > (works correctly) > > > movies = Movie.join(:movies_labels, :movie_id => :id).limit(1).count > > > (0.00) Mysql::Error: Duplicate column name 'updated_at': SELECT > > COUNT(*) AS `count` FROM (SELECT * FROM `movies` INNER JOIN > > `movies_labels` ON (`movies_labels`.`movie_id` = `movies`.`id`) LIMIT > > 1) AS `t1` LIMIT 1 > > There's the difference, you added a .limit(1). When you count on a > limited dataset, you get a subselect. Are you really sure that's the > query you want to do? It should return only 0 or 1. > > The fact that you get a duplicate column name is a MySQL bug in my > opinion. Neither PostgreSQL nor SQLite appear to have an issue with > duplicate columns names in a subselect if they are not referenced by > anything. My advice is to use a database that sucks less. :) > > Jeremy -- You received this message because you are subscribed to the Google Groups "sequel-talk" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/sequel-talk?hl=en.
