繁体   English   中英

Mysql 如何合并不同表的数据

[英]Mysql how to combine data from different tables

EER图

问题是

“显示教授姓名和他/她指导的学生人数。按教授姓名对 output 进行排序。”

如果您参考 EER 图,ProfessorName 在教授表中,而计算教授指导的学生数量所需的数据在 student_professor 表中。 显示这个的语句是什么?

我能想到的最好的就是

SELECT
  ProfessorName,
  COUNT (*)
FROM  professor
WHERE ProfessorId IN
  (SELECT
      ProfessorId,
      COUNT (*)
     FROM student_professor
     WHERE Mentor = 1
  GROUP BY ProfessorId);

您可以使用此查询。

SELECT p.ProfessorName, COUNT(sp.StudentNo)
FROM professor p
LEFT JOIN student_professor sp ON p.ProfessorId = sp.ProfessorId
WHERE sp.Mentor = 1
GROUP BY p.ProfessorId;

如果您有不同的教授具有相同的ProfessorName ,那么结果中将会有重复的ProfessorName 但是,由该教授指导的学生数量仍然是准确的,因为我们正在按教授表的主键进行计数和分组,即ProfessorId

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM