Mysql 在第二个表中随机选择3条记录
大家好 我是MySQL的初学者,所以我需要一些帮助来请求。 目前,我的请求返回了一个系列的信息(id、名称、描述)和该系列的平均音符Mysql 在第二个表中随机选择3条记录,mysql,Mysql,大家好 我是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 我有这样的回答 i
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_流派和id_系列
我现在想要的是一个查询所有数据的请求,我已经有+max 3 id_类型的一个系列
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种以上的类型,那么该类型是随机选择的(不要为一个系列选择2次相同的类型)这里有一种方法。但是,它不是生成三列,而是将结果放在一列中,并将值连接在一起:
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