oracle plsql语句,有三张表联合查询,A表有id,name,grade,B表有pid,class,C表有tid,group,

oracle plsql语句,有三张表联合查询,A表有id,name,grade,B表有pid,class,C表有tid,group,,第1张

你这个关键在于,

id在A表是否可能重复?           ---假设是不能重复的

pid在B表是否可能重复?         ---假设是能重复的,pid,class联合起来是不重复的

tid在C表是否可能重复?          ---假设是能重复的,tid,group联合起来是不重复的

select aid,aname,agrade,bbclass,ccgroup
from a,
(select pid,max(class) class from b group by pid) bb,
(select tid,max(group) group from c group by tid) cc
where aid = bbpid and aid = cctid
  and Aid between 10 and 20

修正楼上语句
select did,dcode,dname,ddate,cs1+cs2+cs3-dsl zhsl,je,(cs1+cs2+cs3-dsl)cje zje
from
(select max(aid) id,acode,aname,sum(asl) sl,max(bdate) date from a,b where aid = bid group by acode,aname ) d,c
where dcode = ccode ;

select × from B minus select × from A
或者
select × from B where not exists (select 1 from A where Aid = Bid)

索引一般分为聚集索引和非聚集索引,表的主键一般都是聚集索引,是自动创建的,而其他字段可以创建成为非聚集索引,索引相当于书本的目录,用于快速检索。创建方法如下:
CREATE NONCLUSTERED 索引名称 ON 表名(字段)
你上面的就是CREATE NONCLUSTERED INDEX_Staff_TypeId on Staff (TypeId)
CREATE NONCLUSTERED INDEX_Staff_mondId on Staff (mondId)

索引是你在查询的时候进行快速检索,是自动实现的,所以怎么使用就不用说了吧

select t1列1,t1列2,t1列3,t1列4,t2列C,t2列D from 表1 t1 FULL OUT JOIN 表2 t2 on t1列1=t2列A and t1列2=t2列B


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13358387.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-21
下一篇 2023-07-21

发表评论

登录后才能评论

评论列表(0条)

保存