VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3351|回复: 14

此表应该怎样关联???

[复制链接]

1

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-1-6 10:40:01 | 显示全部楼层 |阅读模式
A表:药品信息 (ypid ypname ...)
B表:诊疗信息 (zlid zlname ...)
A、B为医疗费用的两大分类
C表:费用信息 (时间 就医编号 费用分类 ypid或zlid ... )

问题:C表中ypid或zlid 显示其ypname等信息,怎样关联?(要先判断费用类别,再关联,这个情况能不能实现?若不能只得增加C表字段,将其固定了)
回复

使用道具 举报

0

主题

100

帖子

53.00

积分

新手上路

Rank: 1

积分
53.00
发表于 2020-1-6 11:45:01 | 显示全部楼层
理论上说A表及B表应该是C的外键表,也就是说C表应该有两个字段ypid,zlid分别与A,B表关联.
回复

使用道具 举报

0

主题

100

帖子

53.00

积分

新手上路

Rank: 1

积分
53.00
发表于 2020-1-6 11:57:01 | 显示全部楼层
sorry,说反了.
理论上说C应该是A表及B表的外键表,也就是说C表应该有两个字段ypid,zlid分别与A,B表关联.
回复

使用道具 举报

1

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
 楼主| 发表于 2020-1-7 12:51:01 | 显示全部楼层
这样说来,估计是不好关联的,有没有别的方法提供也行,感谢unkmass!
回复

使用道具 举报

0

主题

100

帖子

53.00

积分

新手上路

Rank: 1

积分
53.00
发表于 2020-1-7 16:36:01 | 显示全部楼层
如果你能保证A表的ypid和B表的zlid内容互不重复的话,这样用也可以,但设计上就存在弊端了.

select A.ypname,C.费用分类,C.时间,C.就医编号 from A,C where A.ypid=C.费用分类 and  C.费用分类 in(select ypid from A);

select B.zlname,C.费用分类,C.时间,C.就医编号 from B,C where B.zlid=C.费用分类 and  C.费用分类 in(select zlid from B);
回复

使用道具 举报

0

主题

9

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2020-1-19 16:09:01 | 显示全部楼层
要看你用的什么数据库,我比较熟悉oracle,给你oracle的实现sql。实现主要使用decode函数
select ... decode(费用分类,A,ypid,zlid),decode(费用分类,A,ypname,zlname)
解释下:decode函数就是SQL中的条件语句。如果“费用分类”=“A”,那么ypid,否则zlid。其他类似。希望有所帮助。如果数据库用的不是oracle,那么可以查找你使用数据库的类似函数实现。
回复

使用道具 举报

0

主题

3

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-1-21 23:27:02 | 显示全部楼层
加一个字段吧,加一个问题什么问题都解决了。不过可能页面上麻烦一点。
回复

使用道具 举报

0

主题

100

帖子

53.00

积分

新手上路

Rank: 1

积分
53.00
发表于 2020-1-22 06:09:01 | 显示全部楼层
select A.ypname as 费用名称,C.费用分类,C.时间,C.就医编号 from A,C where A.ypid=C.费用分类 and C.费用分类 in(select ypid from A) union select B.zlname as 费用名称,C.费用分类,C.时间,C.就医编号 from B,C where B.zlid=C.费用分类 and C.费用分类 in(select zlid from B);
回复

使用道具 举报

0

主题

100

帖子

53.00

积分

新手上路

Rank: 1

积分
53.00
发表于 2020-1-22 06:18:01 | 显示全部楼层
MS SQL的.
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-8-17 14:30:01 | 显示全部楼层
两大强人
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表