[Moscow.pm] DBIx::Class has_many и count

Alexander Q qalex на ashmanov.com
Ср Июл 29 04:31:13 PDT 2009


my $a = $db->resultset('A')->search(
 {},
 {
  join   => 'B',
  select => [
   \"COUNT(b.id),
   ( map { "me.$_" } $db->resultset('A')->result_source->columns )
  ],
  as => [
   'count',
   ( $db->resultset('A')->result_source->columns )
  ],
  group_by => [
   map { "me.$_" } $db->resultset('A')->result_source->columns
  ],
  order_by => [ \"COUNT(b.id)" ],
 }
);

вот что я родил, но это какой-то урод. Но работает.

В Срд, 29/07/2009 в 15:17 +0400, Alexander Q пишет:
> Ситуация:
> CREATE TABLE a (
>  id INTEGER PRIMRARY KEY,
>  data TEXT
> );
> CREATE TABLE b (
>  id INTEGER PRIMRARY KEY,
>  data TEXT,
>  a INTEGER REFERENCES a(id)
> );
> 
> Хочется при помощи относительно стандартных средств DBIx::Class словить
> результат такого запроса:
> 
> SELECT a.* 
> FROM a a 
> LEFT JOIN b b ON a.id = b.a 
> ORDER BY COUNT(b.*) 
> GROUP BY a.id, a.data;
> 
> Кроме как писать свой result source методом из кукбука, есть способы?
> 
-- 
Alexander Q <qalex на ashmanov.com>



Подробная информация о списке рассылки Moscow-pm