gpt4 book ai didi

perl - DBIx::Class 通过 ID 从另一个表中获取行

转载 作者:行者123 更新时间:2023-12-01 06:43:27 26 4
gpt4 key购买 nike

在我的项目中,我有 3 个表:艺术家、专辑和轨道

结果艺术家:

...
__PACKAGE__->has_many(
'albums' => 'MYLIB::DB::Schema::Result::MyDir::Album',
{ 'foreign.artist_id' => 'self.id', },
);
...

成绩相册:

...
__PACKAGE__->belongs_to(
'artist' => 'MYLIB::DB::Schema::Result::Artist',
{ 'foreign.id' => 'self.artist_id', },
);

__PACKAGE__->has_many(
'tracks' => 'MYLIB::DB::Schema::Result::MyDir::Track',
{ 'foreign.album_id' => 'self.id', },
);
...

结果跟踪:

__PACKAGE__->belongs_to(
'album' => 'MYLIB::DB::Schema::Result::MyDir::Album',
{ 'foreign.id' => 'self.album_id', },
);

现在我有一个对象 $artist 并且我想通过 ID 获取一个轨道。

查询示例:SELECT * FROM Tracks WHERE track_id = $x

最佳答案

如果您想生成您提供给我们的 SQL,那么您拥有艺术家对象这一事实就无关紧要了。只需获取一个跟踪结果集并在其上运行 find()

my $track_rs = $schema->resultset('Track');
my $track = $track_rs->find($track_id);

如果出于某种原因,您没有模式对象,那么您可以从艺术家对象中获取它。

my $schema = $artist->result_source->schema;

关于perl - DBIx::Class 通过 ID 从另一个表中获取行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24117578/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com