繁体   English   中英

ManyToMany关系将三个表联接在一起,并在mysql中限制第三表的第三表的结果

[英]ManyToMany relationship join three tables with limit on result of third table limit on third table in mysql

我有在ManyToMany关系中的三个表。 1.播放列表2.曲目3.播放列表_曲目

我想检索10个播放列表,且限制为5首歌曲。 我该怎么做? 我已经尝试过这种方式。

select t1.id as playlistId, t2.playlist_id as pivot_playlist_id, t2.track_id as track_id 
from playlist t1 
join playlist_tracks t2 on t1.id = t2.playlist_id
left join (
    select t3.id as track_id , t3.is_published 
    from tracks t3
    where t3.is_published = 1 
    group by t3.id limit 5
    ) xx on t2.track_id = xx.track_id 
where t1.prior != 0 AND t1.is_published = 1 ;

但没有得到正确的结果,因为它没有对曲目施加限制。 它返回特定播放列表中的所有歌曲。 我在哪里做错了>请帮助我,这是同一SQLfiddle.com/#!9/feddbd/1的DBfiddle

尝试为每个playlist_track限制5首歌曲:

SET @playlist_id=-1;
SELECT * FROM
(
  SELECT track_id,
@row_number:=CASE
    WHEN @playlist_id= playlist_id THEN @row_number + 1
    ELSE 1
END AS track_number,
@playlist_id:=playlist_id as playlist_id
FROM playlist_tracks
ORDER BY playlist_id
) X WHERE track_number<=5

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM