sql >> Databáze >  >> RDS >> Mysql

Dotaz MySQL s podmínkou poddotazu RAND().

Zkuste to. Zdá se, že přesunutí poddotazu do JOIN problém vyřeší. Myslím, že problém souvisí s poddotazem v klauzuli WHERE. Myslím, že v klauzuli WHERE se pro každý záznam provádí poddotaz a funkce RAND. To je pravděpodobně důvod, proč se výsledky liší.

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. Čtení podřízeného, ​​čtení-zápis hlavního nastavení

  2. Našel někdo efektivní způsob, jak uložit hodnoty BSON ObjectId v databázi SQL?

  3. Sequelize Migration – Vytvořte spouštěč v PostgreSQL

  4. Upozornění:#1265 Data zkrácena pro sloupec 'pdd' na řádku 1