繁体   English   中英

选择所有记录时从表中获取第一个相关图像

[英]Get first related image from table while selecting all the records

我数据库中有4个表

表1:播放列表

id    name    user_id
1     name1   3
2     name2   3

表2:视频

id    name    media_id
1     vid1    4
2     vid2    5

表3:playlist_has_video

id    playlist_id    video_id
1     1              2
2     1              1

表4:媒体

id    filename
4     test.png

现在,我想选择所有会话,其中user_id = 3 +属于playlist.id = 1的视频的第一个media.filename

请参阅表playlist_has_video其中有2个视频属于session.id = 1,因此仅当有很多视频属于该播放列表时才选择第一个视频图像

我的愿望输出将是:

id    session.name    image
1     name1           test.png

问题很难理解。

您应该使用:

SELECT 
    pl.`id`,
    pl.`name` AS 'session.name',
    m.`filename` AS image
FROM `playlists` pl
    INNER JOIN `playlist_has_video` plhv ON plhv.`playlist_id` = pl.`id`
    LEFT JOIN `videos` v ON v.`id` = plhv.`video_id`
    INNER JOIN `media` m ON m.`id` = v.`media_id`
WHERE pl.`user_id` = 3
ORDER BY m.`id`
LIMIT 1

暂无
暂无

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

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