【发布时间】:2013-10-31 02:59:53
【问题描述】:
我有三个表(上面的简化表图)。从这三个表中,我想创建一个视图,它将是 TableA 和 TableB 的组合(tableA 中的所有行和 TableB 中的所有行,没有重复)。问题是我不想要 TableA 中的外键,而是想要视图中 TableC 中的名称。一行如下所示
Id、FullName_A、FullName_B
这可能吗?
【问题讨论】:
标签: sql sql-server join union
我有三个表(上面的简化表图)。从这三个表中,我想创建一个视图,它将是 TableA 和 TableB 的组合(tableA 中的所有行和 TableB 中的所有行,没有重复)。问题是我不想要 TableA 中的外键,而是想要视图中 TableC 中的名称。一行如下所示
Id、FullName_A、FullName_B
这可能吗?
【问题讨论】:
标签: sql sql-server join union
如果我对您的理解正确,以下SQL Fiddle 示例将为您提供所需的内容:
SELECT A.Id, C1.FullName AS APerson, C2.FullName As BPerson
FROM TableA AS A
LEFT JOIN TableC AS C1 ON A.FK_PersonA = C1.Id
LEFT JOIN TableC AS C2 ON A.FK_PersonB = C2.Id
UNION
SELECT B.Id, B.FullName1 AS APerson, B.FullName2 AS BPerson
FROM TableB AS B
【讨论】: