Vous êtes assez proche :
(select * from student where SECTION = 'A' order by rand() LIMIT 3
) union all
(select * from student where SECTION = 'B' order by rand() LIMIT 2
)
order by rand();
Les sous-requêtes utilisent order by rand()
pour obtenir des élèves au hasard avec chaque année. Le order by rand()
randomise les cinq étudiants.
Remarque :C'est le moyen le plus simple d'accomplir ce que vous voulez. Si les students
table est même modérément grande et que les performances posent problème, il existe des solutions alternatives.