sql >> Database teknologi >  >> RDS >> Mysql

MySQL-forespørgsel med RAND() underforespørgselsbetingelse

Prøv dette. At flytte underforespørgslen til JOIN ser ud til at løse problemet. Jeg tror, ​​problemet har at gøre med at have underforespørgslen i WHERE-sætningen. Jeg tror, ​​at i WHERE-klausulen bliver underforespørgslen og RAND-funktionen udført for hver post. Det er sandsynligvis derfor, resultaterne er forskellige.

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. Ingen pakke msyql-server tilgængelig

  2. hvordan man kombinerer rekursiv CTE og normal CTE

  3. rake afbrudt! uinitialiseret konstant Mysql2

  4. Spærret forhold Oracle Academy