我希望表名无关紧要,因为它们基于我的数据库。我会尽量保持简单。
这就是我需要的:提供一份骨科专家的名单,以及他们的助手的名字和联系方式。如果医生没有助手,在“姓氏”报告中写上“未知”。个人信息位于一个名为Person的表中。这包括联系信息(PhoneNumber)。每个医生都有一个名为PersonID助手的ID号,名字(FirstName,LastName)在一个名为PersonContact的表中。
这是我到目前为止所知道的:
SELECT Person.FirstName
    ,Person.LastName
    ,Person.PhoneNumber
    ,PersonContact.FirstName
    ,PersonContact.Lastname
FROM Person
INNER JOIN PersonContact ON person.personID = PersonContactID我怎么才能让没有助手的医生在助手的名字中显示"Unknown“呢?
编辑:我已经尝试了这里的所有建议,但我得到的每一行都是"NULL“或”未知“。当没有Personcontact.Firstname和/或Personcontact.Lastname的条目时,我需要它说“未知”。
发布于 2012-08-18 03:32:11
使用LEFT JOIN获取所有人员和任何可用的联系人,并使用COALESCE将任何空值替换为“UNKNOWN”。
Select Person.FirstName, Person.LastName, Person.PhoneNumber, 
    COALESCE(PersonContact.FirstName, 'UNKNOWN') AS FirstName,
    COALESCE(PersonContact.Lastname, 'UNKNOWN') AS LastName
From Person
LEFT OUTER Join PersonContact
    On person.personID = PersonContactID发布于 2012-08-18 03:31:53
使用左连接
FROM PERSON
LEFT JOIN PersonContact ON person.personID = PersonContactID 这将在没有联系人的情况下提供空值。
根据您的SQL类型,您可以使用某种形式的NULL替换来格式化这些NULL。例如,在MSSQL中
ISNULL(PersonContact.FirstName, '(unknown)')发布于 2012-08-18 03:33:19
使用ISNULL()和左外部联接:
SELECT Person.FirstName     
,isnull(Person.LastName, 'Unknown') as LastName
,Person.PhoneNumber     
,PersonContact.FirstName     
,PersonContact.Lastname 
FROM Person LEFT OUTER JOIN PersonContact ON person.personID = PersonContactID https://stackoverflow.com/questions/12012025
复制相似问题