关于三表合并的SQL语句,请教!
路人甲cw 2011-04-10 12:58:33 现有A,B,C三张表,表A储存基本信息,表B储存高血压信息,表C储存糖尿病信息:
---------
表A结构大致如下:
编号 姓名 性别 是否有慢性病
表B结构大致如下:
编号 姓名 性别 高血压相关指标
表C结构大致如下:
编号 姓名 性别 糖尿病相关指标
---------
它们之间的关系是,假如 张三 是糖尿病人,那么在表B中就会有他的一条记录,同理如果他是糖尿病人那么在表C中就也会有一条相关的记录,如果同时是高血压又是糖尿病那么BC两表都有一条相关记录,记录有且只有一条!如果慢性病为否,那么视为健康人群,BC两表中都不会有相关记录,无论是高血压还是糖尿病,慢性病都为是.
问题如下:
我想查出这样的数据:
编号 姓名 性别 是否有慢性病 高血压相关指标 糖尿病相关指标
无论有没有慢性病或无论是高血压还是糖尿病人都显示出相同的列出来,只是有些列可能为空.
但是如果有下面的语句来查就只会查出同时是高血压又是糖尿病的人,其它人就不会被选中:
select a.编号,a.姓名,a.性别,a.是否慢性病,b.高血压相关指标,c.糖尿病相关指标 from 表A a,表B b,表C c where a.编号=b.编号 and a.编号=c.编号
请问应该如果生成SQL?
因为我想把这些数据分三个表来存,如果都存一张表的话就不会有这些问题了,但我不想那样做,不知道这样合理吗?有没有更好的设计方式?