说我有一张叫学生的桌子

idStudent    Name

1            Billy
2            Mariah
3            Chris
4            Mark
5            Sarah


还有另一个表叫做测试

idTest score student_idstudent

1      50      1
2      100     1
3      90      2
4      100     3
5      45      4


是否可以使用join和avg()的组合来获得类似的结果

idStudent     avg_test
1             75
2             90
3             100
4             45
5             0

最佳答案

SELECT s.idStudent,
       AVG(COALESCE(t.score, 0)) AS avg_test
FROM students s
LEFT JOIN tests t
    ON s.idStudent = t.student_idStudent
GROUP BY s.idStudent

08-06 21:56