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

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

大家好

我是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_流派和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