Probeer dit. Het verplaatsen van de subquery naar de JOIN lijkt het probleem op te lossen. Ik denk dat het probleem te maken heeft met het hebben van de subquery in de WHERE-component. Ik denk dat in de WHERE-component de subquery- en RAND-functie voor elk record wordt uitgevoerd. Dit is waarschijnlijk de reden waarom de resultaten variëren.
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