選択したビデオが含まれるランダムを選択するネストされたサブクエリAlbumID
があり(ビデオは複数のアルバムに含まれる可能性があります)、外部クエリはそれに基づいてビデオとアルバム情報を返しますAlbumID
。
問題は、クエリが混合結果を返すことです。1つのアルバムのビデオをいくつか提供する場合もあれば、複数のアルバムのビデオを提供する場合もありますが、何も返さない場合もあります。
サブクエリの代わりに特定のクエリを指定すると、外部クエリが機能AlbumID
し、サブクエリ自体が1つのランダムを正しく返しますAlbumID
。しかし、まとめると、それは私にさまざまな結果をもたらしています。私は何が欠けていますか?さまざまな量の行と複数のアルバムが返されるのはなぜですか?
テストデータで問題を再現しました。CREATE
クエリは次の場所にあります: http://pastebin.com/raw.php?i = e6HaaSGK
SELECT 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
)