我是 SQL 语法的初学者。我有 2 个名为 STUDENT
和 EXAMINATION
的表,我在一行中尝试编写查询以打印 ID
、SUBJECT
和 NUMBER_OF_TIMES
。我没有被告知哪个列属于哪个表,但我的猜测是 ID
属于 STUDENT
而 SUBJECT
属于 EXAMINATION
。 NUMBER_OF_TIMES
是同一名学生参加该科目考试的次数。
我尝试了 SELECT STUDENT.ID, EXAMINATION.SUBJECT, NUMBER_OF_TIMES
但没有成功。
最佳答案
您的工作查询看起来像这样:
SELECT
s.ID,
e.SUBJECT,
COUNT(e.STUDENT_ID) AS cnt
FROM STUDENT s
LEFT JOIN EXAMINATION e
ON s.ID = e.STUDENT_ID
GROUP BY
s.ID,
e.SUBJECT
这个答案假设,实际上是出于必要,在考试表中存在一个连接列 STUDENT_ID
,它与学生表连接。我们使用左连接来报告所有学生,即使是那些计数为零的学生。
关于mysql - 根据ID选择2个表之间的同一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56412286/