我有三个表(上面的简化表图)。从这三个表中,我想创建一个视图,它将是 TableA 和 TableB 的组合(tableA 中的所有行和 TableB 中的所有行,没有重复)。问题是我不想要 TableA 中的外键,而是想要视图中 TableC 中的名称。一行会像下面这样
标识、全名_A、全名_B
这可能吗?
我有三个表(上面的简化表图)。从这三个表中,我想创建一个视图,它将是 TableA 和 TableB 的组合(tableA 中的所有行和 TableB 中的所有行,没有重复)。问题是我不想要 TableA 中的外键,而是想要视图中 TableC 中的名称。一行会像下面这样
标识、全名_A、全名_B
这可能吗?
如果我对您的理解正确,则以下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