用SQL语句查询选修课程名称中有数据库课程的学生的学号

从学生表中选择*,其中学生是编号(或者从课程表中选择学生编号,其中课程='数据库')这个想法可能是这样的

请问如何用SQL查询至少选修了两门课程的学生学号?

study(sno,cno,score)查询至少修过两门课程的学生人数:π1(σ(1=4Λ2!=5)(studyxstudy))。

selectsno(学生学号)fromsc(学生选课列表)

1

selecta.studentnumber,b.name,to.cntas选修课程数

(选择学号,count(1)为ascntfrom团体选课表按学号

havingcount(1)=(selectcount(1)fromcurriculum))a,

学生表bwherea.学号=b.学号;

扩展信息:

我们假设关系R和关系S具有相同的对象n并且对应的属性取自相同的域,因此关系R和关系S之间的区别关系S关系S属于R它不是由所有元组组成属于S。
由此产生的关系仍然是n阶关系。
表示为:

R-S={t|t∈R∧t∉S}

假设关系R和关系S有相同的对象n,对应的属性为在同一域中,关系R和关系S的交集由同时属于R和S的元组组成。
生成的关系仍然是n阶关系。
记为:

R∩S={t|t∈R∧t∈S}

严格来说,这里的笛卡尔积是广义笛卡尔积(ExtendedCartesianProduct)。
为了不混淆,广义笛卡尔积也称为笛卡尔积。

分别为n阶和m阶的两个关系R和S的广义笛卡尔积是一组(n+m)列的元组。
元组的前n列是关系R的元组,后m列是关系S的元组。
如果R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡尔积有k1×k2元组。

参考来源:百度百科-关系代数