4个回答
展开全部
为说明方便,我假设有2张表,它们的字段及数据如下:
患者基本信息表(身份证,姓名,地址,电话,……)主键是身份证
就诊信息表(身份证,就诊次数,就诊日期,用药,……)主键是身份证和就诊次数
患者基本信息表 (当办理了医保卡就有基本信息存在医院的系统中)
身份证 姓名 地址
1 张三 北京
2 李四 上海
3 王五 厦门
就诊信息表 (身份证为4的人有看病,但没有医保卡)
身份证 就诊次数 就诊时间 用药
1 1 2013-01-01 青霉素
1 2 2013-04-15 红霉素
2 1 2008-12-21 青霉素
4 1 2000-10-10 青霉素
通过”身份证“将2张表进行连接,联接属性中有3种类型:内部联接、左联接、右联接,它们的意思如下:
选项 关系联接 左表 右
1. 只包括两个表中的联接字段相同的行。 内部联接 匹配行 匹配行
2. 包括“患者基本信息”表中的所有记录以及
“就诊信息”表中联接字段相等的记录。 左外部联接 所有行 匹配行
3. 包括“就诊信息”表中的所有记录以及“患者
基本信息”表中联接字段相等的记录。 右外部联接 匹配行 所有行
现住我们要输出2个表所有字段,如果选择1,表示2张表都存在相同的身份证的记录才会出现
身份证 姓名 地址 就诊次数 就诊时间 用药
1 张三 北京 1 2013-01-01 青霉素
1 张三 北京 2 2013-04-15 红霉素
2 李四 上海 1 2008-12-21 青霉素
如果选择2,则数据如下:
身份证 姓名 地址 就诊次数 就诊时间 用药
1 张三 北京 1 2013-01-01 青霉素
1 张三 北京 2 2013-04-15 红霉素
2 李四 上海 1 2008-12-21 青霉素
3 王五 厦门
显然,包含了所有”患者基本信息“表中的记录,就像身份证为3的人,不管他有没有看过病。他的意义在于,比如我们要统计办了医保卡但没有就诊过的人,你只有选择2才能正确统计。
如果选择3,则数据如下:
身份证 姓名 地址 就诊次数 就诊时间 用药
1 张三 北京 1 2013-01-01 青霉素
1 张三 北京 2 2013-04-15 红霉素
2 李四 上海 1 2008-12-21 青霉素
4 1 2000-10-10 青霉素
显然,包含了所有”就诊信息“表中的记录,就像身份证为4的人。他的意义在于,比如我们要统计医院总的青霉素的使用量,你只有选择3才能正确统计。选择1或2,就会漏统计身份证为4的患者用量。
总之,选择什么,要根据你需要的目的而定。另外,在查询中也可以设置联接属性(就是inner join, left join,right join),但当执行查询时程序会覆盖关系中设置的联接属性。
患者基本信息表(身份证,姓名,地址,电话,……)主键是身份证
就诊信息表(身份证,就诊次数,就诊日期,用药,……)主键是身份证和就诊次数
患者基本信息表 (当办理了医保卡就有基本信息存在医院的系统中)
身份证 姓名 地址
1 张三 北京
2 李四 上海
3 王五 厦门
就诊信息表 (身份证为4的人有看病,但没有医保卡)
身份证 就诊次数 就诊时间 用药
1 1 2013-01-01 青霉素
1 2 2013-04-15 红霉素
2 1 2008-12-21 青霉素
4 1 2000-10-10 青霉素
通过”身份证“将2张表进行连接,联接属性中有3种类型:内部联接、左联接、右联接,它们的意思如下:
选项 关系联接 左表 右
1. 只包括两个表中的联接字段相同的行。 内部联接 匹配行 匹配行
2. 包括“患者基本信息”表中的所有记录以及
“就诊信息”表中联接字段相等的记录。 左外部联接 所有行 匹配行
3. 包括“就诊信息”表中的所有记录以及“患者
基本信息”表中联接字段相等的记录。 右外部联接 匹配行 所有行
现住我们要输出2个表所有字段,如果选择1,表示2张表都存在相同的身份证的记录才会出现
身份证 姓名 地址 就诊次数 就诊时间 用药
1 张三 北京 1 2013-01-01 青霉素
1 张三 北京 2 2013-04-15 红霉素
2 李四 上海 1 2008-12-21 青霉素
如果选择2,则数据如下:
身份证 姓名 地址 就诊次数 就诊时间 用药
1 张三 北京 1 2013-01-01 青霉素
1 张三 北京 2 2013-04-15 红霉素
2 李四 上海 1 2008-12-21 青霉素
3 王五 厦门
显然,包含了所有”患者基本信息“表中的记录,就像身份证为3的人,不管他有没有看过病。他的意义在于,比如我们要统计办了医保卡但没有就诊过的人,你只有选择2才能正确统计。
如果选择3,则数据如下:
身份证 姓名 地址 就诊次数 就诊时间 用药
1 张三 北京 1 2013-01-01 青霉素
1 张三 北京 2 2013-04-15 红霉素
2 李四 上海 1 2008-12-21 青霉素
4 1 2000-10-10 青霉素
显然,包含了所有”就诊信息“表中的记录,就像身份证为4的人。他的意义在于,比如我们要统计医院总的青霉素的使用量,你只有选择3才能正确统计。选择1或2,就会漏统计身份证为4的患者用量。
总之,选择什么,要根据你需要的目的而定。另外,在查询中也可以设置联接属性(就是inner join, left join,right join),但当执行查询时程序会覆盖关系中设置的联接属性。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询