इसे इस्तेमाल करे। सबक्वायरी को जॉइन में ले जाने से समस्या ठीक हो जाती है। मुझे लगता है कि समस्या को WHERE क्लॉज में सबक्वायरी रखने के साथ करना है। मुझे लगता है कि WHERE क्लॉज में, प्रत्येक रिकॉर्ड के लिए सबक्वायरी और रैंड फ़ंक्शन निष्पादित किया जा रहा है। शायद यही कारण है कि परिणाम भिन्न हो रहे हैं।
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