Sql server SQL:如果表B为空,则将表A中的值与表C连接起来
我有三个表,希望在表A和表B匹配时连接它们(内部连接),但是,如果A中的ID不匹配,我希望将其与表C匹配。像这样: 表ASql server SQL:如果表B为空,则将表A中的值与表C连接起来,sql-server,join,Sql Server,Join,我有三个表,希望在表A和表B匹配时连接它们(内部连接),但是,如果A中的ID不匹配,我希望将其与表C匹配。像这样: 表Aperson id person 1 John 2 Adam 3 Carolin 表Bpet owner_id pet 1 Bubbles 3 Fido 表C车辆 owner_id vehicle 2 Mustang 3 Golf 我期望的结果是 person pet/vehic
person
id person
1 John
2 Adam
3 Carolin
表Bpet
owner_id pet
1 Bubbles
3 Fido
表C车辆
owner_id vehicle
2 Mustang
3 Golf
我期望的结果是
person pet/vehicle
1 Bubbles
2 Mustang
3 Fido
对于人员3,选择宠物而不是车辆,因为宠物不是空的
我当然可以这样做:
select a.person,b.pet,c.vehicle from person a
join pet b on a.id = b.owner_id
join vehicle c on a.id = c.owner_id
但是这会给我三列,我需要两列。你可以使用
左连接和合并:
select a.person, coalesce(b.pet, c.vehicle) as 'pet/vehicle'
from person a
left join pet b on a.id = b.owner_id
left join vehicle c on a.id = c.owner_id
这看起来很有趣-我马上就来试试