sql >> Databasteknik >  >> RDS >> Mysql

MySQL-fråga med RAND()-underfrågavillkor

Prova detta. Att flytta underfrågan till JOIN verkar lösa problemet. Jag tror att problemet har att göra med att underfrågan finns i WHERE-satsen. Jag tror att i WHERE-satsen exekveras underfrågan och RAND-funktionen för varje post. Det är förmodligen därför resultaten varierar.

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. Hur ställer man in tidszon på postgresql jdbc-anslutning skapad av flyway?

  2. Flera främmande nycklar i samma tabell

  3. Gå med i 3 bord med Count

  4. Ogiltigt datetime-format:1292 Felaktigt datetime-värde - Laravel 5.2