m0_37610198 2019-01-25 10:28 采纳率: 0%
浏览 2145
已结题

oracle中怎么把有相同字段的三张表A,B,C关联呢?

oracle中怎么把有相同字段的三张表A,B,C关联呢?

相同字段全是一对多的关系。已经尝试用A.ID=B.ID AND B.ID=C.ID AND C.ID=A.ID这种方式把三张表内相同的三个字段都这么处理了,但是查询到的结果全部是重复数据

```select C.visit_date ,C.visit_no,C.patient_id ,O.DIAGNOSIS_NO
from CANCER_OUPT_PAT C,
CLINIC_MASTER M ,
OUTP_diagnosis O
WHERE C.PATIENT_ID=M.PATIENT_ID
AND C.visit_date=M.VISIT_DATE
AND C.visit_no=M.VISIT_NO
and O.PATIENT_ID=C.PATIENT_ID
AND O.visit_no=C.VISIT_NO
AND O.VISIT_DATE=M.VISIT_DATE
AND O.DIAGNOSIS_DESC = C.DIAGNOSIS_DESC
AND M.NAME=C.name


但是查询的结果全是重复的数据


## 怎么关联才能没有这些重复的数据?因为查询的列都不唯一所以不能用distanct


## 还有oracle中 where之后的判断语句是按什么顺序执行的?从where之后的第一句开始判断吗?

## 有个疑问,如果要增加查询非关联字段,是不是要在group by 后面添加增加的字段?(我尝试添加后,查询的结果又变成重复循环数据了)?
  • 写回答

4条回答 默认 最新

  • phoenix850121 2019-01-25 10:41
    关注

    1.如果是一对多关系,只能将查询结果加distinct去重,或你根据业务看看是否有其他字段可以关联去重。
    2.where的条件是按倒序执行的,即从下往上执行。

    评论

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?