所以我有一張名為 students_classrooms 的表,它代表了學生和教室之間的關系。我一直想知道是否有一種方法可以為每個教室隨機分配學生,只使用 SQL 查詢。
尋找這樣的結果:教室 - 學生 (2,3)(3,77)
學生是隨機選擇的。
我一直在嘗試不同的配置解決方案,但它們似乎都不起作用,不勝感激任何建議,謝謝!!
SELECT student_id, classroom_id
from students_classrooms
where classroom_id in (2,3)

uj5u.com熱心網友回復:
我認為你需要類似的東西:
select (
select t2.student_id
from students_classrooms t2
where t2.classroom_id = t1.classroom_id
order by rand() limit 1
) as student_id,
t1.classroom_id
from students_classrooms t1
group by classroom_id
order by rand() ;
子查詢隨機搜索同一張表,參考classic_id,生成隨機串列
演示
uj5u.com熱心網友回復:
這是一個想法:
SELECT classroom_id,
SUBSTRING_INDEX(GROUP_CONCAT(student_id ORDER BY RAND()),',',1) AS student
FROM students_classrooms
WHERE classroom_id IN (2,3)
GROUP BY classroom_id;
使用GROUP_CONCAT(student_id ORDER BY RAND())然后提取第一個student_id出現在GROUP_CONCAT()串列中的使用SUBSTRING_INDEX()。
小提琴
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/411045.html
標籤:
上一篇:加權平均將資料組合成一行
