遗憾迟香 发表于 2024-3-31 19:24

[SQL]模拟关系除法

在关系代数中,除法运算表示被除数中包含除数的内容的集合,但舍弃掉除数的列
但在SQL语言中似乎无法直接实现,但可以使用多表连接实现
感觉"使用SQL查询选修了数据结构和操作系统的学生的学号和姓名"习题答案和ChatGPT的回答难以理解,就想办法模拟除法,类似于封装类库
如果有更优解欢迎提出
后天去复试,希望能重拾疫情中逝去的校园生活

--使用SQL模拟关系代数除法,查询选修了数据结构和操作系统的学生的学号和姓名
--创建被除数临时表
select S.Sno,Sname,Cno into 被除数 from S join SC on SC.Sno=S.Sno
go
--创建除数临时表
Select distinct Cno into 除数 fromC where Cname='数据结构' or Cname='操作系统'
go
--模拟除法
select Sno,Sname from 被除数 join 除数 on 被除数.Cno=除数.Cno
--释放临时表
drop table 被除数,除数


页: [1]
查看完整版本: [SQL]模拟关系除法