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

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 交替优化波束形成和ris反射角使保密速率最大化
  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程