SQL在视图中组合两个表

时间:2013-10-31 02:59:53

标签: sql sql-server join union

Simple Table Diagram

我有三张桌子(上面简化的表格图)。从这三个表中我想创建一个视图,它将是TableA和TableB的组合(tableA中的所有行和TableB中的所有行都没有重复)。问题是我不希望TableA中的foriegn键,而是我想在视图中使用TableC中的名称。一行就像下面的

Id,FullName_A,FullName_B

这可能吗?

1 个答案:

答案 0 :(得分:1)

如果我理解正确,以下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