我遇到了疑问,请帮忙。 我想创建视图。
ID | Acode | Bcode | Ccode |
1 | 10 | 101 | 102 |
2 | 11 | 100 | 101 |
3 | 10 | 100 | 102 |
Acode | Adescription |
10 | English |
11 | Math |
Bcode | Bdescription |
100 | Grade A |
101 | Grade B |
Ccode | Cdescription |
100 | Level A |
101 | Level B |
102 | Level C |
我想根据table1中的代码打印Table1中的所有行和其他表中的描述。
输出应该是: 数据
ID | Acode |Adescription | Bcode | Bdescription | Ccode | Cdescription |
1 | 10 | English | 101 | Grade B | 102 | Level C |
2 | 11 | Math | 100 | Grade A | 101 | Level B |
我创建了左连接,但它返回的行数多于table1中的实际值。我希望只有table1中的所有记录和其他表中的描述。
请帮忙
答案 0 :(得分:0)
以下是一个例子。由于您没有发布原始查询尝试,因此我们无法确切说明您获取多行的原因。除非您在联接表中缺少代码,否则无需LEFT JOIN
。
SELECT Table1.ID
, Table1.Acode
, Table2.Adescription
, Table1.Bcode
, Table3.Bdescription
, Table1.Ccode
, Table4.Cdescription
FROM dbo.Table1
JOIN dbo.Table2 ON Table2.Acode = Table1.Acode
JOIN dbo.Table3 ON Table3.Bcode = Table1.Bcode
JOIN dbo.Table4 ON Table4.Ccode = Table1.Ccode;
答案 1 :(得分:0)
感谢您的帮助
LEFT加入运作良好。我试图逐一缩小表格,找到了我获取重复记录的表格。找到表后,我发现我忘了添加唯一键,并且输入了1条记录(描述)两次,这给出了重复记录,并且总行数增加了。
感谢所有人帮助我,Dan Guzman指出了重复的代码。