很抱歉,标题不是很具描述性。我有一个像这个例子的表,我正在使用sql server 2012:
PersonId | PetID
并希望将其加入以下两个表
PersonId | PersonName | PersonAsset
AnimalId | AnimalName | Animal Asset
所以最终的结果是:
PersonId | PetId | Name | Asset
-------------------------------
1 null Dave 1
null 1 Fido 2
答案 0 :(得分:1)
您需要的输出可以通过对两个表使用LEFT JOIN并在ISNULL使用所需字段来实现。
例如(假设第一个表名为'common'):
SELECT common.PersonId,
common.PetId,
ISNULL(person.PersonName, animal.AnimalName) AS Name,
ISNULL(person.PersonAsset, animal.AnimalAsset) AS Asset
FROM common
LEFT JOIN person ON common.PersonId = person.PersonId
LEFT JOIN animal ON common.AnimalId = animal.AnimalId