2012-12-20 72 views
1

我有几张表,我需要将主键为patient_id的表患者的患者卡ID(PID)与其他表的PID字段链接......如何我可以这样做吗?帮帮我!如何在SQL Server中创建两个非主键实体之间的关系

+1

为什么被标记的问题与'C#'?从我正在阅读的内容来看,这是一个简单的sql问题。 – DHN

+0

[我希望这可以帮助你] [1] [1]:http://stackoverflow.com/a/12895999/1918376 stackoverflow.com/a/12895999/1918376 –

回答

0

你可以加入他们像

SELECT * 
FROM [Patient] p 
INNER JOIN [OtherTable] ot 
    ON p.pid = ot.patient_id; 
+0

它说:“无效的对象名称't​​bl_patient'”...实际上我的表名称是tbl_patient,正如您所说我写道。SELECT * FROM [tbl_patient] p –

+0

'无效的对象名称'不是SQL错误。 ..只需打开[LINQPad](http://www.linqpad.net/)或[SQL Management Studio](http://www.microsoft.com/en-us/download/details.aspx?id=8961)连接到您的数据库并在将其提交给您的开发人员代码之前进行查询。 – balexandre

0

您可以使用外键

CREATE TABLE T 
(
    any_primary_key INT PRIMARY KEY, 
    [other attributes], 
    patient_id,  
    FOREIGN KEY (patiend_id) REFERENCES Patients.patient_id 
) 

如果患者是有其必须被宣布为uniquepatient_id的表。

+0

我是否需要声明patient_id独特?我只需要将患者表(tbl_patient)的“pid”连接到图像表(tbl_image)的“pid”...其中“pid”是患者卡号,而patient_id是具有自动增量的主键... –

+0

它确实取决于你的模式,我没有完全得到。具有您想要参考的值的原始表格必须具有该值作为唯一值。表T中的值(我用作示例)然后只是返回到该唯一值的引用。 T可以有多个包含引用的元组,因为它有另一个主键。我建议你在这里感叹一下:https://www.coursera.org/course/db,看看有关键的视频(这是免费的,太棒了!)。 – span

相关问题