Sql server 一对多数据库表关系

Sql server 一对多数据库表关系,sql-server,database,Sql Server,Database,数据库中有两个表 Consultation Table -ConsultationNo -PK -PatientNo -FK -Diagnosis -Etc... VitalSign Table -VitalSignNo -PK -Weight -Height -HeartRate -BloodPressure -Etc 我需要像这样把这两张桌子连接起来 Consultation Table -ConsultationNo -PK -PatientNo -FK **-VitalSignNo

数据库中有两个表

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,但您仍将获得咨询行


这可能不完全适合您的情况,因为问题中的表结构看起来不完整。也就是说,两个表中都没有引用另一个表主键的外键。

谢谢您的输入!但我需要问的是,如果VItalSignI没有记录,我怎么能在ConsultationTable中插入一个完整的行呢?我不明白。您需要编辑您的问题,以更清楚地了解您试图做什么,并提供示例。从你的评论中我一点也不明白你的意思。