MYSQL 不同的随机连接查询

MYSQL distinct random join query

我有两张桌子

albums      fotos
------      -----
id          id
titulo      url
            fk_album

我想知道如何从所有相册中 select 不为空的随机照片...并且必须是不同的...例如:

albums          fotos
------          ------
1 A             1 my_url_1 2
2 B             2 my_url_2 2 
3 C             3 my_url_3 1
4 D             4 my_url_4 2
5 E             5 my_url_5 3
                6 my_url_6 3

我想要这样的结果:(不同、随机和连接)

result0 -> 
       albums.id     -> 2
       albums.titulo -> B
       fotos.url     -> my_url_2 (this must be random) (or my_url_1 or my_url_4)
result1 -> 
       albums.id     -> 3
       albums.titulo -> C
       fotos.url     -> my_url_6 (this must be random) (or my_url_5 )
result2 -> 
       albums.id     -> 1
       albums.titulo -> A
       fotos.url     -> my_url_3 (the album only has this foto url)

我尝试了很多方法,但实际上我只能得到带有照片但没有随机值的不同相册。

编辑: 我正在使用以下查询,returns 我有 5 张带照片的相册(所有不同...不重复)。但我每张专辑总是得到相同的照片。我每次都需要不同的照片(当然如果相册不止一张)

select distinct
     a.id,
     a.titulo,
     f.url
 from albums as a
      inner join
          fotos as f
          on  a.id = f.fk_album
 where f.fk_album = a.id
 GROUP by f.fk_album, a.id

我在这里有点猜测,我不确定这方面的表现如何,但你可以使用类似的东西:

SELECT a.id,
     a.titulo,
     f.url
 FROM albums AS a
      JOIN (SELECT url, fk_album FROM fotos ORDER BY RAND()) as f
          ON a.id = f.fk_album
 GROUP BY a.id

(我从您的查询中删除了 distinct、where 和 group by,因为这些语句看起来多余)