[Dbix-class] Query problem
Peter Rabbitson
rabbit+dbic at rabbit.us
Mon May 14 19:11:56 GMT 2012
Daniel J. Luke wrote:
> On May 14, 2012, at 2:21 PM, Kenneth S Mclane wrote:
>> my $rs = $c->model('ORANGES::Account')->search_rs(undef, {
>> join => { servers => 'subs' },
>> select => [ { count => 'subsystem_id' } ],
>> as => [ qw/ num_subs / ],
>> group_by => [ qw/ account_code subs.server_id server_name server_type os_name / ],
>> rows => 15,
>> page => $page,
>> order_by => ['account_code', 'server_name'],
>> });
>>
>> But the SQL looks like it is getting closer to what I need:
>>
>> SELECT
>> s.server_id,
>> a.account_code,
>> s.server_name,
>> s.server_type,
>> s.os_name,
>> (select count(*) from server ss, subsserystem sb
>> where ss.server_id = sb.server_id
>> and ss.server_id = s.server_id) as num_subsystems
>> FROM
>> account a,
>> server s
>> WHERE
>> and a.account_id = s.account_id
>> order by a.account_code, s.server_name"
>>
>> I have exhausted all the docs I can find
>
> Does this help?
>
> http://search.cpan.org/dist/DBIx-Class/lib/DBIx/Class/Manual/Cookbook.pod#Subqueries
>
> I also found reading through the actual DBIx::Class (and SQL::Abstract) code illuminating when first looking at using DBIx::Class for some stuff.
>
>> and if I can't get this count of subsystems relater to servers to work I will have to dump this as a feasible development platform.
>
> you know you can use strait SQL with DBIx::Class too if you need to (although it's better if you don't):
>
> http://search.cpan.org/dist/DBIx-Class/lib/DBIx/Class/Manual/Cookbook.pod#Arbitrary_SQL_through_a_custom_ResultSource
>
>> I'm really hoping someone can come up with a concrete answer to do this. This is one of those things never addressed directly in any of the docs. If I had a example to work with I could figure it out, but I'm flying blind here.
>
> There's not always an easy example that just shows you what you need to do - sometimes you have to understand how things work instead of just copy+paste+modify...
Except when there is:
https://metacpan.org/module/DBIx::Class::Manual::Cookbook#Correlated-subqueries
More information about the DBIx-Class
mailing list