两个表的数据操作
Data manipulation with two tables
抱歉,标题非常模糊,老实说,我不知道如何准确地提出我的问题。我需要一些帮助来为两个表编写查询。
这些表名为 subject 和 assignment,它们看起来像这样:
主题
subjectcode | subjectname | classcode
---------------------------------------------
BAC3000 | Bachelorassignment | IS3
DAT1000 | Databasetechonlogy | IS1
INF1000 | Informationsystems | IS1
LED2000 | IT-leadership | IS2
OBJ2000 | OOP | IS2
PRG3000 | Applied programming | IS3
作业
subjectcode | number | deadline
-------------------------------------
DAT1000 | 1 | 2020-10-20
DAT1000 | 2 |
INF1000 | 1 | 2020-10-30
INF1000 | 2 |
我需要编写一个查询来输出所有主题代码和主题拥有的作业数量。输出应该是这样的:
subjectcode | numberofassignment
--------------------------------
BAC3000 | 0
DAT1000 | 2
INF1000 | 2
LED2000 | 0
OBJ2000 | 0
PRG3000 | 0
我尝试过创建视图、连接表格以及以不同方式使用计数,但都没有成功。感谢任何帮助。
我不确定我是否理解对了,但是当你想计算 subjectcode 的赋值次数时,你可以使用这个语句。您不需要 join
,您可以使用子查询。
select
subjectcode,
(select count(*) from Assignment where subjectcode = s.subjectcode) as numberofassignment
from
Subject s
根据您提供的数据,结果不可能完全一样。但根据您的要求,这样的事情就可以完成工作:
SELECT s.subjectcode, count(1) as numberofassignment FROM subject s
LEFT JOIN assignment a
ON s.subectcode = a.subjectcode
GROUP BY s.subjectcode
只需使用 count()
并左连接
select s.subjectcode ,count(number) as numberofassignment from
Subject s left join Assignment a
on s.subjectcode=a.subjectcode
group by s.subjectcode
这将适用于 MySQL:
select subjectcode, (select count(*) from Assignment where subjectcode=s.subjectcode)
from Subject s
抱歉,标题非常模糊,老实说,我不知道如何准确地提出我的问题。我需要一些帮助来为两个表编写查询。
这些表名为 subject 和 assignment,它们看起来像这样:
主题
subjectcode | subjectname | classcode
---------------------------------------------
BAC3000 | Bachelorassignment | IS3
DAT1000 | Databasetechonlogy | IS1
INF1000 | Informationsystems | IS1
LED2000 | IT-leadership | IS2
OBJ2000 | OOP | IS2
PRG3000 | Applied programming | IS3
作业
subjectcode | number | deadline
-------------------------------------
DAT1000 | 1 | 2020-10-20
DAT1000 | 2 |
INF1000 | 1 | 2020-10-30
INF1000 | 2 |
我需要编写一个查询来输出所有主题代码和主题拥有的作业数量。输出应该是这样的:
subjectcode | numberofassignment
--------------------------------
BAC3000 | 0
DAT1000 | 2
INF1000 | 2
LED2000 | 0
OBJ2000 | 0
PRG3000 | 0
我尝试过创建视图、连接表格以及以不同方式使用计数,但都没有成功。感谢任何帮助。
我不确定我是否理解对了,但是当你想计算 subjectcode 的赋值次数时,你可以使用这个语句。您不需要 join
,您可以使用子查询。
select
subjectcode,
(select count(*) from Assignment where subjectcode = s.subjectcode) as numberofassignment
from
Subject s
根据您提供的数据,结果不可能完全一样。但根据您的要求,这样的事情就可以完成工作:
SELECT s.subjectcode, count(1) as numberofassignment FROM subject s
LEFT JOIN assignment a
ON s.subectcode = a.subjectcode
GROUP BY s.subjectcode
只需使用 count()
并左连接
select s.subjectcode ,count(number) as numberofassignment from
Subject s left join Assignment a
on s.subjectcode=a.subjectcode
group by s.subjectcode
这将适用于 MySQL:
select subjectcode, (select count(*) from Assignment where subjectcode=s.subjectcode)
from Subject s