sql >> データベース >  >> RDS >> Mysql

RAND()サブクエリ条件を使用したMySQLクエリ

    これを試して。サブクエリをJOINに移動すると、問題が解決するようです。問題は、WHERE句にサブクエリがあることに関係していると思います。 WHERE句では、レコードごとにサブクエリとRAND関数が実行されていると思います。これがおそらく結果が変化する理由です。

    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. 2つのテーブルを1つのクラスにHibernateマッピングする

    2. MySQL VIEWと埋め込みクエリのどちらが速いですか?

    3. MySQLに最適なDBaaSソリューション

    4. Oracle XSLT:デフォルトのネームスペースは空のタグになります