我正在为相当基本的 DBIx-Class 预取使用而苦苦挣扎。我想限制使用预取时从连接表返回的列。
这:
my $rs = $schema->resultset('CD')->search(
{}, # No searching restrictions through WHERE clause
{
prefetch => [qw/ artist /],
columns => [qw/ title artist.name /],
}
);
生成此 SQL:
SELECT cd.title, artist.*
FROM cd
JOIN artist ON cd.artist = artist.id
但是我不想删除所有的艺术家列,只删除 cd.title 和 Artist.name 列(在这个例子中,我的实际用例更复杂)。列功能似乎只适用于主表而不是连接表。
我想要这个 SQL:
SELECT cd.title, artist.name
FROM cd
JOIN artist ON cd.artist = artist.id
我只是在使用 Catalyst/DBIx-Class 获得我的海腿,所以我可能在这里忽略了一些非常明显的东西!