我正在尝试使用两个现有表中的列创建一个新表,并且它的行为不符合我的预期。
表A有91255063条记录,表B有2372294条记录。两个表都有一个名为link_id的公共字段。 Link_id在两个表中都不是唯一的,并且不会总是存在于表B中。
我正在寻找的最终结果是一个包含91255063记录的新表,基本上所有表A都包含来自表B的任何附加数据,用于匹配link_id' s的记录。我原以为外连接会按如下方式完成:
use database1
SELECT a.*
,b.[AdditionalData1]
,b.[AdditionalData2]
,b.[AdditionalData3]
into dbo.COMBINEDTABLE
FROM Table1 a
left outer join Table2 b
ON a.LINK_ID = b.LINK_ID
这在查看结果数据时似乎有效,但是我新创建的表COMBINEDTABLE的行总数现在有98011015行。我在这里没有使用正确的连接方法吗?
答案 0 :(得分:0)
很可能右侧有重复的LINK_ID,因此对于Table1中的很多行,Table2中有多个行。您可以尝试在SELECT中使用DISTINCT,或指定只需要具有最小或最高标识符列值的记录(如果有的话)。