我在DBIx::Class結果集搜索中使用group_by。每個組返回的結果總是具有最低id的組中的行(即組中最早的行)。我正在尋找一種方法來獲得最高id的行(即組中最新的一行)。如何在DBIx :: Class結果集搜索中檢索每個組中的最新記錄?
問題與此基本相同: Retrieving the last record in each group ...除了我正在使用DBIx :: Class而非原始SQL。
提出這個問題的背景:
我對音樂的表評論
review
------
id
artist_id
album_id
pub_date
...other_columns...
可以有任何給定的artist_id/album_id多個評論。 我希望按照日期降序排列最新的評論,每個artist_id/album_id最多隻有一條評論。
我試圖做到這一點使用:
$schema->resultset('Review')->search(
undef,
{
group_by => [ qw/ artist_id album_id/],
order_by => { -desc => 'pub_date' },
}
);
這幾乎工程,但各組,而不是在最新的返回最古老的審查。 我怎樣才能得到最新的?
也許'-desc' =>'-asc'? – J0HN
J0HN - order_by在分組完成後應用,因此它不會影響每個組返回的結果。 – nick