我有一张名为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
吗?
答案 0 :(得分: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
答案 1 :(得分: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