一对多数据库表的关系

问题描述:

我有从数据库中的两个表..一对多数据库表的关系

Consultation Table 
-ConsultationNo -PK 
-PatientNo -FK 
-Diagnosis 
-Etc... 


VitalSign Table 
-VitalSignNo -PK 
-Weight 
-Height 
-HeartRate 
-BloodPressure 
-Etc 

我需要连接这两个表这样的..

Consultation Table 
-ConsultationNo -PK 
-PatientNo -FK 
**-VitalSignNo** -FK 
-Diagnosis 
-Etc... 

但有时候,我VitalSign表不会接受任何价值观,因此这两张表之间的关系不会被强制执行,我该怎么办?

使用外连接,像这样......

Select * from Consultation 
Left join VitalSign on (Consultation.ConsultationNo = vitalsign.ConsultationNo) 

你会得到从咨询的所有行,并从Vitalsign匹配的行。当Vitalsign中没有行时,所有这些列将返回null,但您仍然可以获得咨询行。

这可能不完全适合您的情况,因为您的问题中的表结构看起来不完整。那么,你是不是在任何一张引用另一张PK的表中都有一个外键。

+0

感谢您的输入!但是我需要问的是,如果我在VItalSign没有记录,我可能能够在咨询表中插入一个完整的行 – TheOxblood 2013-02-24 07:19:13

+1

我不明白。你需要编辑你的问题,以便更清楚你想要做什么并提供例子。我不明白你的评论你的意思。 – JohnFx 2013-02-24 07:26:00