oracle数据库 多表连接查询
我数据库里面有三个表需要连接起来查询(药品与药物不一定是相等的也有可能相等)A表:疾病1药品1增长1疾病1药品2数字2B表:药品1药物1药品1药物2药品1药物3药品2药物...
我数据库里面有三个表需要连接起来查询 (药品与药物不一定是相等的 也有可能相等)
A表: 疾病1 药品1 增长1
疾病1 药品2 数字2
B表: 药品1 药物1
药品1 药物2
药品1 药物3
药品2 药物4
药品2 药物5
药品2 药物6
药品2 药物7
C表: 药物1 成分1 克数1
药物1 成分2 克数2
药物1 成分3 克数3
药物1 成分4 克数4
药物1 成分5 克数5
药物1 成分6 克数6
药物2 成分1 克数7
药物2 成分2 克数8
药物2 成分3 克数9
药物2 成分7 克数10
药物2 成分8 克数11
药物2 成分9 克数12
查询后的显示格式为:
疾病 药品 药物 成分 克数 增长
疾病1 药品1 药物1 成分1 克数1 数字1
疾病1 药品1 药物1 成分2 克数2 数字1
疾病1 药品1 药物1 成分3 克数3 数字1
疾病1 药品1 药物1 成分4 克数4 数字1
疾病1 药品1 药物2 成分1 克数5 数字1
疾病2 药品1 药物1 成分1 克数5 数字2
其关系为 A表中的 药品 = B. 药品 与 B.药物 = C.药物 展开
A表: 疾病1 药品1 增长1
疾病1 药品2 数字2
B表: 药品1 药物1
药品1 药物2
药品1 药物3
药品2 药物4
药品2 药物5
药品2 药物6
药品2 药物7
C表: 药物1 成分1 克数1
药物1 成分2 克数2
药物1 成分3 克数3
药物1 成分4 克数4
药物1 成分5 克数5
药物1 成分6 克数6
药物2 成分1 克数7
药物2 成分2 克数8
药物2 成分3 克数9
药物2 成分7 克数10
药物2 成分8 克数11
药物2 成分9 克数12
查询后的显示格式为:
疾病 药品 药物 成分 克数 增长
疾病1 药品1 药物1 成分1 克数1 数字1
疾病1 药品1 药物1 成分2 克数2 数字1
疾病1 药品1 药物1 成分3 克数3 数字1
疾病1 药品1 药物1 成分4 克数4 数字1
疾病1 药品1 药物2 成分1 克数5 数字1
疾病2 药品1 药物1 成分1 克数5 数字2
其关系为 A表中的 药品 = B. 药品 与 B.药物 = C.药物 展开
1个回答
展开全部
以oracle使用rownum伪列实现分页为例:
三表连接分页示例代码如下:
select * from (select rownum r,k.kch,k.kcm,cj.cj,x.xh,x.xm from KCB k,CJB cj,XSB x where k.kch = cj.kch and cj.xh = x.xh and rownum<=10) where r>0
特别注意这样外层查询时由于内层查询的字段有重复列名,所以内层查询最后不要用*。取完每一个表字段,这样很容易报错(“无效字段”)
三表连接分页示例代码如下:
select * from (select rownum r,k.kch,k.kcm,cj.cj,x.xh,x.xm from KCB k,CJB cj,XSB x where k.kch = cj.kch and cj.xh = x.xh and rownum<=10) where r>0
特别注意这样外层查询时由于内层查询的字段有重复列名,所以内层查询最后不要用*。取完每一个表字段,这样很容易报错(“无效字段”)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询