2015-03-26 2 views
0

у меня есть 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 + первый media.filename видео, которое принадлежит playlist.id = 1

См. Таблицу playlist_has_video есть 2 видео принадлежит session.id = 1 , поэтому выберите первое видеоизображение, только если к этому списку воспроизведения принадлежит много видео.

Мой выход желание будет:

id session.name image 
1  name1   test.png 

Вопрос сложен для понимания.

+1

А что вы пробовали? Кроме того, определите «первый» и что такое сеанс? – Strawberry

ответ

0

Вы должны использовать:

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 
Смежные вопросы