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

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

概述在我的项目中,我有3个表:艺术家,专辑和曲目 结果艺术家: ...__PACKAGE__->has_many( 'albums' => 'MYLIB::DB::Schema::Result::MyDir::Album', { 'foreign.artist_id' => 'self.id', },);... 结果专辑: ...__PACKAGE__->belongs_t 在我的项目中,我有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;
总结

以上是内存溢出为你收集整理的perl – DBIx :: Class按ID从另一个表中获取行全部内容,希望文章能够帮你解决perl – DBIx :: Class按ID从另一个表中获取行所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1213094.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存