条件JOIN取决于外键是否为NULL?

时间:2014-07-01 10:41:03

标签: mysql sql select join left-join

我有一个表人,其中一个人可能属于一个组织(在表ORG中)。如果他们没有,则orgID字段为NULL。如果他们这样做,那么与ORGs.OrgID行匹配。

如何创建我认为是条件连接的内容?换句话说,如果PEOPLE.orgID为NULL,则返回" None",但如果PEOPLE.orgID不为NULL,则返回相应的ORGs.Name

|------------|      |------------|
|PEOPLE      |      |ORGs        |
|------------|      |------------|
|personID    |      |OrgID       |
|orgID       |      |Name        |
|Name        |      |            |
|------------|      |------------|

2 个答案:

答案 0 :(得分:1)

您需要left outer join coalesce()

select p.*, coalesce(o.name, 'None') as orgname
from people p left join
     orgs o
     on p.orgID = o.orgid;

答案 1 :(得分:0)

使用 LEFT OUTER JOIN IFNULL()

试试这个:

SELECT P.personID, P.Name, IFNULL(O.Name, 'None') OrgName
FROM PEOPLE P 
LEFT OUTER JOIN ORGs O ON P.orgID = O.OrgID