My tables look like this: http://pastie.org/1622672 (This is a legacy database: I tried to distill the classes down to only what was important)
I want to pull in TrackingGroupMember#name for each Bug and be able to sort and group on it. I also want to be able to sort by Bug#date_updated, for instance, and group on TrackingGroupMember#name in the same query. I basically want to treat TrackingGroupMember#name as if it were a column in Bug, as there will only ever be a 1 to 1 mapping (in this particular where clause) of TrackingGroupMember to Bug I want to group and sort like this: a|1 c|2 a|2 a|3 b|2 b|1 c|5 If I group on the first column, and sort on the second column I want to see: a|1 a|2 a|3 b|1 b|2 c|2 c|5 If I group on the second column and sort by the first, I want to see: a|1 b|1 a|2 b|2 c|2 a|3 c|5 Does that sound possible? Thanks for your help. Josiah On Mar 1, 2:26 pm, "Xavier (DBIYF)" <[email protected]> wrote: > On 2/03/11 9:24 AM, Josiah wrote:> Aha, yeah, I was asking for how to do it > in the database (somehow I > > glossed over the fact that group_by was not a datamapper call and it > > was not actually issuing a group by in sql). Is there a way to do > > group by without sorting by that field as well? I'd like to be able > > to sort by one column and group by another. > > Please provide the concrete SQL query you are trying to achieve > (or the input with expected output) > > My brain doesn't work with Foo and joinedtable ;) > > > > > > > > > > > Thanks for your help so far, > > Josiah > > > On Mar 1, 2:16 pm, Xavier Shay<[email protected]> wrote: > >> On Mar 2, 6:03 am, Josiah<[email protected]> wrote:> What is the api > >> for grouping by and sorting by a joined table in 1.1? > > >>> eg: > > >>> Foo.all( ... ).group_by(&:'joinedtable.some_field') > > >> I'm not convinced this a datamapper method ... #group_by is provided > >> by activesupport, and you're using it with a proc. This happens in > >> ruby land, not in the DB, meaning you can do this: > >> .group_by {|record| record.joined_table.some_field } > > >>> and > > >>> Foo.all(order: [ :'joined_table.some_field'.asc ]) > > >> Foo.all( > >> order: Foo.joined_table.some_field.asc, > >> links: [relationships['joined_table'].inverse] > >> ) > > >> (There is small chance I didn't get this fix merged in for 1.1, in > >> that case here is a hack to you can use to work > >> around:http://rhnh.net/2010/12/01/ordering-by-a-field-in-a-join-model-with-d...) > > >> Cheers, > >> Xavier > > >>> Thanks, > >>> Josiah -- You received this message because you are subscribed to the Google Groups "DataMapper" 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/datamapper?hl=en.
