情景:比如现在有一张A城市所有学校学生信息的表student(1000W),现在需要求学生与学生之前是否是同学关系(条件是同校同级同班),那么问题就来了,这样student 和 student 自关联,会产生很多关联关系【比如一个班50个人,同学x和其他49个人都会产生关系】导致效率低下。请问有没有更好的办法解决?!求教!
解决方案 »
- oracle10g的网上管理功能 如何安装
- [求助]数据库设计,多属性表设计问题
- 求一条sql语句
- 请问在oracel中可以根据rowid来删除行吗,可以根据rowid来做连接吗?
- 请教高手:如何让表的存储空间缩小?
- VNI-2015 错误(在线等待)
- 如何在PL/SQL中取得UPDATE更新了多少行?
- 在建好的表里新添了一个字段,并设置默认值,该怎么做?
- ORACLE 海量数据去重 查缺 处理,求Oracle解答
- 关于oracle的唯一性约束问题,急~!!!在线等~~!!!
- oracle查询多级时候父级合并,子级用逗号隔开
- linux环境下执行shell脚本,shell脚本会执行一个SQL,怎么实现打印SQL脚本到指定文件
select * from (
select count(1) nm,stu.学校id,stu.哪一级id,stu.班级
from student stu
where stu.id=A.id or stu.id=B.id
group by stu.学校id,stu.哪一级id,stu.班级) b where b.nm>1
首先谢谢你的回复!但是我的需求里面是需要 同一条记录里展示2个学生的关系
比如 学生A XXX年入校 学生B XXX年入校 关系为同学 班级 级别 学校 这样的格式。如果不用关联的话,如何做到呢?
假设这张表为T表,
select 班级相关信息 from t where 学生主键=ID
能查出该学生的历史班级信息
那么,我们取两个学生的交集
select 班级相关信息 from t where 学生主键=学生A
intersect
select 班级相关信息 from t where 学生主键=学生B查询结果,即重合的班级,就是他们同为同学的班级,如果没有返回记录,则没有同学关系