gpt4 book ai didi

mysql - 在第二个表中随机选择 3 条记录

转载 作者:行者123 更新时间:2023-11-30 00:23:14 25 4
gpt4 key购买 nike

大家好。

我是 MySQL 的初学者,所以我需要一些请求帮助。目前,我的请求返回一个系列的信息(id,名称,描述)以及该请求的系列的平均音符。

SELECT s.* , round( coalesce( avg( note.note ) , 0 ) , 1 ) AS average
FROM serie AS s
LEFT JOIN note ON s.id_serie = note.id_serie
GROUP BY s.id_serie
ORDER BY average DESC

我有这个回应

id_serie    name    annee   description     average 
1 DBZ 1984 test 3.5
2 Bleach 2001 description2 2.0

我还有一张表,其中包含该系列的类型。该表只有 id_genre 和 id_serie。

我现在想要的是一个查询我已经拥有的所有数据+一个系列的最大 3 id_genre 的请求。

id_serie    name    annee   description     average    genre1   genre2    genre3
1 DBZ 1984 test 3.5 1 2 9
2 Bleach 2001 description2 2.0 1 NULL NULL

如果可能的话,如果该系列有超过 3 个类型,我也希望随机选择该类型(并且永远不要为一个系列选择两次相同的类型)

最佳答案

这是一种方法。但是,它不是生成三列,而是将结果放入单个列中,并将值连接起来:

SELECT s.* , round( coalesce( avg( n.note ) , 0 ) , 1 ) AS average, g.genres
FROM serie s LEFT JOIN
note n
ON s.id_serie = n.id_serie LEFT JOIN
(select substring_index(group_concat(distinct g.genre order by random()), ',', 3) as genres
from genre g
group by g.id_serie
) g
on g.id_serie = s.id_serie
GROUP BY s.id_serie
ORDER BY average DESC

关于mysql - 在第二个表中随机选择 3 条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23069920/

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