1

我有一张叫Doctor的桌子。

医生表由 4 个字段组成。DoctorID,DoctorName, DoctorAddress, DoctorSpeciality

我有另一个名为 PatientData 的表。它有4个字段。PatientId, PatientName, PatientTelephone, DoctorID.

我需要编写一个显示以下字段的 SQL;

PatientID, PatientName, DoctorName, DoctorSpeciality

1.)我想,我必须在INNER JOIN这里使用,但我不知道如何为这种情况编写它。我猜一个outer join也可以工作,但我是新手Joins。有人可以在这里帮助我吗?

2.) 我可以为我在上面创建VIEW的语句创建一个吗?SQL

4

2 回答 2

2

这样的事情应该使用常规INNER JOIN——这将返回 Doctor 表中的所有记录以及 PatientData 表中的匹配记录:

SELECT PD.PatientId, PD.PatientName, D.DoctorName, D.DoctorSpecialty
FROM Doctor D
   INNER JOIN PatientData PD ON D.DoctorId = PD.DoctorId

如果您想从其他表之一返回所有数据,请考虑使用OUTER JOIN(我更喜欢LEFT JOINs)。

这是一篇关于连接视觉表示的好文章:http: //www.codeproject.com/Articles/33052/Visual-Representation-of-SQL-Joins

是的,如果你愿意,你可以创建一个视图——取决于你的需要。这样的事情应该很接近:

CREATE VIEW DoctorPatients AS
SELECT PD.PatientId, PD.PatientName, D.DoctorName, D.DoctorSpecialty
FROM Doctor D
   INNER JOIN PatientData PD ON D.DoctorId = PD.DoctorId

SQL Server 视图:http: //msdn.microsoft.com/en-us/library/ms187956.aspx

于 2013-02-23T21:48:33.643 回答
1

这是一个简单的连接

SELECT p.PatientID, p.PatientName, d.DoctorName, d.DoctorSpeciality
FROM PatientData p JOIN Doctor d on d.DoctorID = p.PatientID

当然你可以从这里创建一个视图

   CREATE VIEW [dbo].[PatientAndDoctor]
   AS
      SELECT p.PatientID, p.PatientName, d.DoctorName, d.DoctorSpeciality
      FROM PatientData p JOIN Doctor d on d.DoctorID = p.PatientID
于 2013-02-23T21:51:14.197 回答