我有一个嵌套子查询,它随机AlbumID
选择所选视频所在的位置(视频可以在多个专辑中),然后外部查询根据该查询返回视频和专辑信息AlbumID
。
问题是查询返回混合结果;有时它会给我一张专辑中的一些视频,有时它会提供多张专辑中的视频,有时它什么也不返回。
如果我指定特定AlbumID
而不是子查询,则外部查询有效,并且子查询本身正确返回 1 random AlbumID
。但放在一起,结果好坏参半。我错过了什么?为什么它返回不同数量的行和多个专辑?
我已经用测试数据复制了这个问题,你可以在这里找到CREATE
查询:http: //pastebin.com/raw.php?i= e6HaaSGK
选择 SQL:
SELECT
Videos_Demo.VideoID,
VideosInAlbums_Demo.AlbumID
FROM
VideosInAlbums_Demo
LEFT JOIN
Videos_Demo
ON Videos_Demo.VideoID = VideosInAlbums_Demo.VideoID
WHERE
VideosInAlbums_Demo.AlbumID = (
SELECT
AlbumID
FROM
VideosInAlbums_Demo
WHERE
VideoID = '1'
ORDER BY
RAND()
LIMIT 1
)