满足给定条件的查询

时间:2014-01-31 05:42:53

标签: sql sql-server-2012

我正在使用sql server management studio 2012.请一两分钟来了解这个问题,这非常重要:( 场景是: 我有三张桌子,Patient,patientAccount和Message。 现在,我首先将值插入表Patient和Message,然后一段时间后我将值插入PatientAccount Table.Now,问题出在软件中我使用的是sql)我有这个查询:

select 
    * 
from Patient 
    join Message on Patient.GUID = Message.PatientGUID 
where Message.GUID = "..Data

如果我在此查询中添加PatientAccount,例如

select 
    * 
from Patient 
    join Message on Patient.GUID = Message.PatientGUID, PatientAccount 
where Message.GUID = "..Data

在我将PatientAccount表添加到PatientMessage表的同一时刻,必须向PatientAccount表添加值,但我真正想要的是要采用的值查询patientAccount表中是否有数据,如果{{1}}表中没有插入值,它应该只从Patient和Message表中获取值。 我希望所有这一切都在一个查询中。

1 个答案:

答案 0 :(得分:0)

您可以使用outer join来实现此目的,以便select查询不依赖于PatientAccount表。与下面的查询类似

SELECT * 
FROM   patient p 
       LEFT JOIN patientaccount pa 
              ON p.guid = pa.patientguid 
       LEFT JOIN message m 
              ON p.guid = m.patientguid 
WHERE  m.guid = "id" 

此选择查询将始终返回PatientAccount表中的记录,但如果没有特定患者的数据,则PatientAccount中的列将为空