gpt4 book ai didi

mysql - Laravel 列出具有子模型流行度的音乐流派

转载 作者:行者123 更新时间:2023-11-29 21:15:42 25 4
gpt4 key购买 nike

我有 4 张 table :

  1. 音乐流派
  2. 艺术家
  3. 歌曲
  4. 歌曲信息

weekly_hitSongInfo 表中的一列。

MusicGenre 连接到 Artist,如下所示:

public function artists()
{
return $this->hasMany('App\Models\Artist\ArtistInfo','genre_id','id');
}

Artist 连接到 Song 如下:

public function songs()
{
return $this->hasMany('App\Models\Song\Songs','artist_id');
}

Song 连接到 SongInfo,如下所示:

public function info()
{
return $this->hasOne('App\Models\Song\SongsInfo','song_id','id');
}

查询表没有问题。

我的问题是我想使用 SongInfo 表中的 weekly_hit 获得最佳音乐流派。

编辑:

我用原始代码解决了这个问题

"select music_genres.*, 
sum(distinct song_info.weekly_hit) as song_popularity

from `music_genres`

left join `artist_info` on
`music_genres`.`id` = `artist_info`.`genre_id`

left join songs on
artist_info.artist_id = songs.artist_id

left join songs_info on
songs.id = songs_info.song_id

group by music_genres.name

order by song_popularity DESC

limit 5

但是,我无法获取歌曲。我想从所有返回的音乐流派中获取歌曲信息表中按 week_hit 排序的 5 首歌曲。

伙计们,我仍在寻找解决方案吗?

有人可以帮助我吗?

最佳答案

您需要使用 Eloquent 的 hasManyThrough() 关系来到达关系链的深处。

关于mysql - Laravel 列出具有子模型流行度的音乐流派,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35962571/

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