加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl – DBIx :: Class按ID从另一个表中获取行

发布时间:2020-12-16 06:05:58 所属栏目:大数据 来源:网络整理
导读:在我的项目中,我有3个表:艺术家,专辑和曲目 结果艺术家: ...__PACKAGE__-has_many( 'albums' = 'MYLIB::DB::Schema::Result::MyDir::Album',{ 'foreign.artist_id' = 'self.id',},);... 结果专辑: ...__PACKAGE__-belongs_to( 'artist' = 'MYLIB::DB::Sch
在我的项目中,我有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获取Track.

查询示例:
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;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读