【发布时间】:2011-06-22 15:28:27
【问题描述】:
我正在尝试实现对播放列表的最高结果搜索。表格是这样的:
播放列表:id、标题
作业:id、youtube_id、位置
视频:youtube_id、标题
所以加入他们很简单:播放列表 =(id)= 作业 =(youtube_id)= 视频
我想在标题匹配中找到第一个播放列表(标题不是唯一的)并将其与每个视频匹配,以带回该播放列表中的视频列表。我尝试了以下查询:
SELECT *
FROM (
SELECT id, title, position, youtube_id
FROM playlists p
JOIN playlist_assignments pa
USING(id)
WHERE 1 and title = 'My Top Videos'
LIMIT 1
)d
JOIN videos v
USING (youtube_id)
ORDER BY position ASC
不幸的是,查询只会返回 1 行,播放列表仅与第一个视频匹配。如何将子查询限制为仅顶部结果,但仍具有多行答案的最终结果?
【问题讨论】: