我知道这可能很简单,但它很晚,而且对于我的生活,我不记得该怎么做。
我有四个表,A,B和C.每个表都有一个ID,Name和其他一些列。
我需要的是一个具有ID,Name_A,Name_B和Name_C的表E.因此,如果我添加另一个名称来表示B,它将更新这个新的E表以包含它。
我尝试创建一个视图:
Create View VwNames
as
SELECT dbo.TableA.name AS NameA,
dbo.TableB.name AS NameB,
dbo.TableC.name AS NameC
FROM dbo.TableA,
dbo.TableB,
dbo.TableC
但是我得到了一个重复名称的视图,例如
Juan Pedro Mario
Juan Mario Pedro
Mario Juan Pedro
Mario Pedro Juan
Pedro Juan Mario
Pedro Mario Juan
我需要的是向我展示的东西:
Juan
Mario
Pedro
或
Juan Mario Pedro
任何帮助都会非常感激,我现在已经找了几个小时。
提前多多感谢
编辑:
截至目前我的观点如何:
答案 0 :(得分:1)
尝试这样:
Create View VwNames
as
SELECT distinct dbo.TableA.name AS NameA,
dbo.TableB.name AS NameB,
dbo.TableC.name AS NameC
FROM dbo.TableA TA LEFT JOIN
ON TA.col1=TB.col1
dbo.TableB TB LEFT JOIN
ON TB.col1=T.col1
dbo.Table T
答案 1 :(得分:1)
你可以使用联盟。像这样:
SELECT dbo.TableA.name FROM dbo.TableA UNION
SELECT dbo.TableB.name FROM dbo.TableB UNION
SELECT dbo.TableC.name FROM dbo.TableC
这将让你输出:
Juan
Mario
Pedro
答案 2 :(得分:1)
Create View VwNames
as
SELECT distinct a.name AS NameA,
b.name AS NameB,
c.name AS NameC
FROM dbo.TableA a join
dbo.TableB b
on b.id=a.id
join
dbo.Table c
on c.id=b.id