sql >> Database >  >> RDS >> Mysql

MySQL-query met RAND()-subqueryvoorwaarde

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



  1. libaio.so.1:kan het gedeelde objectbestand niet openen

  2. Redenen om optimistisch te zijn over de toekomst van Microsoft Access

  3. EXECUTE...INTO...USING statement in PL/pgSQL kan niet worden uitgevoerd in een record?

  4. Entiteitsframework-verbinding met Oracle-database