Coba ini. Memindahkan subquery ke JOIN tampaknya memperbaiki masalah. Saya pikir masalahnya ada hubungannya dengan memiliki subquery di klausa WHERE. Saya pikir dalam klausa WHERE, fungsi subquery dan RAND dieksekusi untuk setiap record. Ini mungkin mengapa hasilnya bervariasi.
SELECT a.AlbumID,
Videos_Demo.VideoID,
VideosInAlbums_Demo.AlbumID
FROM VideosInAlbums_Demo
LEFT JOIN Videos_Demo
ON Videos_Demo.VideoID = VideosInAlbums_Demo.VideoID
JOIN
(
SELECT AlbumID
FROM VideosInAlbums_Demo
WHERE VideoID = '1'
ORDER BY RAND()
LIMIT 1
) AS a ON VideosInAlbums_Demo.AlbumID = a.AlbumID