gpt4 book ai didi

MYSQL 不同的随机连接查询

转载 作者:行者123 更新时间:2023-11-29 22:45:43 24 4
gpt4 key购买 nike

我有两张 table

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

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

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)

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

编辑:我使用以下查询,它返回 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

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

关于MYSQL 不同的随机连接查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29153742/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com