【发布时间】:2019-04-01 00:41:42
【问题描述】:
i have 3 tables as the following:
学生
---------------
id name
---------------
1 Joe
2 mark
3 mike
---------------
主题
-----------------------------------
id student_id name
-----------------------------------
1 1 math
2 1 english
3 1 french
4 1 history
5 2 math
6 2 english
7 2 french
8 3 math
9 3 english
-----------------------------------
考试
-----------------------------------
ID Student_id mark
-----------------------------------
1 1 10
2 1 10
3 1 10
4 1 10
5 2 5
6 2 5
7 2 5
8 3 2
9 3 2
-----------------------------------
SELECT
student.id, student.name AS 'NAME',
COUNT(subject.id) AS 'SUBJECTS',
SUM(exam.mark) AS 'MARKS'
FROM
'student'
INNER JOIN subject
ON subject.student_id = student.id
LEFT JOIN exam
ON exam.student_id = student.id
GROUP BY
student.id
我想加入 STUDENT 和 SUBJECT、STUDENT 和 EXAM 当我加入第三张桌子时,我的问题正在发生,它
复制结果。我成功加入了前两个表,但是当我加入 > 第三个表时,它会重复计数。
我需要的结果是:
-----------------------------------
ID NAME SUBJECTS MARKS
-----------------------------------
1 joe 4 40
2 mark 3 15
3 mike 2 4
【问题讨论】:
-
您如何确定哪个
mark是针对哪个主题的? -
我只需要学生的总分,而不是每个科目的总分@PaulSpiegel
-
这不是我问的。如果您认为这种关系无关紧要 - 祝您好运!你可能会需要它。
-
我的cmets的原因:dbfiddle.uk/…
标签: mysql