Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Truy vấn MySQL với điều kiện truy vấn con RAND ()

Thử cái này. Di chuyển truy vấn con đến JOIN dường như khắc phục được sự cố. Tôi nghĩ vấn đề liên quan đến việc có truy vấn con trong mệnh đề WHERE. Tôi nghĩ rằng trong mệnh đề WHERE, truy vấn con và hàm RAND đang được thực thi cho mỗi bản ghi. Đây có thể là lý do tại sao kết quả khác nhau.

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tìm một cột cụ thể trong một bảng không xác định trong cơ sở dữ liệu?

  2. Truy vấn MySql self JOIN

  3. Truy vấn bảng chéo động MySQL:Chọn bản ghi con làm cột bổ sung

  4. UNION ALL và LIMIT trong MySQL

  5. Trả lại giá trị ngay cả khi không có kết quả