Thử cái này. Di chuyển truy vấn con đến JOIN dường như khắc phục được sự cố. Tôi nghĩ vấn đề liên quan đến việc có truy vấn con trong mệnh đề WHERE. Tôi nghĩ rằng trong mệnh đề WHERE, truy vấn con và hàm RAND đang được thực thi cho mỗi bản ghi. Đây có thể là lý do tại sao kết quả khác nhau.
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