我正在尝试使用RIGHT连接获取NULL
值。例如。
-T1-
AppId | PhoneTypeID | PhoneNumber
10 | 1 | xxx-xxx-xxxx
12 | 2 | xxx-xxx-xxxx
13 | 3 | xxx-xxx-xxxx
-T2-
Id | Description
1 | Home
2 | Work
3 | Mobile
我正在使用以下查询。
SELECT *
FROM T1
RIGHT OUTER JOIN T2 ON T1.PHONE_TYPE_ID = T2.Id AND T2.Id = 1
期待
-T3-
AppId | PhoneTypeID | PhoneNumber | Id | Description
10 | 1 | xxx-xxx-xxxx | 1 | Home
12 | NULL | NULL | 1 | Home
13 | NULL | NULL | 1 | Home
答案 0 :(得分:0)
尝试使用此方法获取预期的记录集:
stdClass
我虽然不了解T3.Id和T3.Description的目的?谢谢
答案 1 :(得分:0)
您的查询与 RIGHT JOIN 不符。您总是从 T1 返回 AppId ,但同一表中只有一些 PhoneNumber ,没有 JOIN 可以做则需要有条件的( CASE )。
例如,此查询将完全返回您的预期结果:
select T1.AppId,
case when T1.PhoneTypeID = T2.Id then T1.PhoneTypeID else null end as PhoneTypeID,
case when T1.PhoneTypeID = T2.Id then T1.PhoneNumber else null end as PhoneNumber,
T2.Id,
T2.Description
from T1
inner join T2 on T2.ID = 1