求多张关联表的SQL语句
程序员文章站
2022-04-09 23:04:23
...
我也不知道描述清楚没有,望各位前辈指点。
您提供的语句有两个where
回复讨论(解决方案)
我也不知道描述清楚没有,望各位前辈指点。
select * from a,b,c where a.KSBH = C.KSBH and a.XMBH = b.XMBH where b.TJDJBH = '10001041' and a.KSBH = '01'//描述的不够清晰;不知道是不是这个
select * from a,b,c where a.KSBH = C.KSBH and a.XMBH = b.XMBH where b.TJDJBH = '10001041' and a.KSBH = '01'//描述的不够清晰;不知道是不是这个
您提供的语句有两个where
我们先来分析一下
表四沟通了其他三个表
表四本身表达了:
一个综合项目包含了哪些体检项目(ZHBH,XMBH)
一个科室包含了哪些体检项目(KSBH,XMBH)
一个科室包含了哪些综合项目(KSBH,ZHBH)
由表四的XMBH可在表一中查到体检项目的名称
同样由表四的KSBH可在表一中查到体检项目的名称
而表四种的KSBH与XMBH是一一对应的,所以表一中的KSBH是多余的
同理表三中的KSBH也是多余的
表二中,用户做的是真实的检查(XMBD)并不需要关心该XMBH隶属于哪个ZHBH
所以表二中的ZHBH也是多余的
从表四处发,我们可以知道(通过表四的XMBH与表二的XMBH)
某个XMBH被那些TJDJBH参与了
某个ZHBH被那些TJDJBH参与了
接下来的事情就应该不难了吧?