SQL向表中添加列,接收重复项

时间:2015-09-02 15:00:45

标签: sql

我试图将一个列添加到表中,但我得到了一些我试图避免的重复项。 描述不好,但我希望我的例子可以帮助你理解。

(如果有人能够很快解释我如何在下面创建一个漂亮的表格,那也会有帮助:))

示例:

  • 表A(id,Fund)(基于今天的数据)
  • 表B(id,Fund2)(基于一年前的数据)

表A:

id   Fund
---------
1    UBS
1    UBS2
2    MS

表B:

id   Fund2
----------
1    MS
1    UBS3
2    MS

查询:

SELECT A.*, B.Fund2
FROM A 
LEFT JOIN B ON B.id = A.id

返回:

id   Fund    Fund2
------------------
1    UBS     MS
1    UBS     UBS3
1    UBS2    MS
1    UBS2    UBS3
2    MS      MS

但我真正想要的是:

id   Fund   Fund2
-----------------
1    UBS    MS
1    UBS2   UBS3
2    MS     MS

2 个答案:

答案 0 :(得分:0)

问题是你的表。没有什么可以说的是' 1 UBS'从A来匹配来自B的MS。如果表A和B具有唯一ID,但是你不能使用id 1两次而没有你得到的结果。我会先尝试理顺你的身份。

答案 1 :(得分:0)

首先,让你的ids独一无二。你的表应该是

表A:

id基金

1 UBS

2 UBS2

3 MS

表B:

id Fund2

1 MS

2 UBS3

3 MS

然后,当你做

SELECT A.*, B.Fund2
FROM A left join B on B.id=A.id

表A的第一行将与表B的第一行匹配,第二行将匹配,第三行将匹配。