Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何通过计数将一个组从一个关系关联到另一个关系?_Mysql_Sql_Database_Schema - Fatal编程技术网

Mysql 如何通过计数将一个组从一个关系关联到另一个关系?

Mysql 如何通过计数将一个组从一个关系关联到另一个关系?,mysql,sql,database,schema,Mysql,Sql,Database,Schema,我有以下两种模式: advisor(s_ID, i_ID) instructor(ID, name, dept_name, credits) 我已通过以下方式计算每个不同I_ID的I_ID出现总数: SELECT i_ID, count(*) FROM advisor GROUP BY i_ID; 每个ID都属于一个部门名称。如何获取每个部门名称出现的总数 例如: i_ID count 21 3 23 4 27 1 29

我有以下两种模式:

advisor(s_ID, i_ID)
instructor(ID, name, dept_name, credits)
我已通过以下方式计算每个不同I_ID的I_ID出现总数:

SELECT i_ID, count(*)
FROM advisor
GROUP BY i_ID;
每个ID都属于一个部门名称。如何获取每个部门名称出现的总数

例如:

i_ID     count 
21         3
23         4
27         1
29         5
假设i_ID 21,23属于讲师(ID,物理),i_ID 27,29属于讲师(ID,化学),则输出为:

dept_name   count
physics       7(3+4)
chemistry     6(1+5)
试试这个

  select a.dept_name,count(*) as count from instructor a join advisor b
    on a.ID=b.i_ID group by  a.ID
试试这个

  select a.dept_name,count(*) as count from instructor a join advisor b
    on a.ID=b.i_ID group by  a.ID
我希望这有帮助

select dept name, 0 as total advised
from (select dept name from department
minus
select dept name
from instructor)
union
select dept name, count(*) as total advised
from instructor, advisor
where instructor.id = advisor.I ID
group by dept name
order by dept name;
我希望这有帮助

select dept name, 0 as total advised
from (select dept name from department
minus
select dept name
from instructor)
union
select dept name, count(*) as total advised
from instructor, advisor
where instructor.id = advisor.I ID
group by dept name
order by dept name;

i_ID是外键。我说得对吗?是的,你说得对。虽然它在讲师中被命名为ID。i_ID是外键。我说得对吗?是的,你说得对。尽管它在讲师中被命名为ID。