我有三张桌子(上面简化的表格图)。从这三个表中我想创建一个视图,它将是TableA和TableB的组合(tableA中的所有行和TableB中的所有行都没有重复)。问题是我不希望TableA中的foriegn键,而是我想在视图中使用TableC中的名称。一行就像下面的
Id,FullName_A,FullName_B
这可能吗?
答案 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