需要连接表A中所有数据都正确的两个表

时间:2015-02-11 09:29:23

标签: sql tsql

我有两张格式相同的表格。它们看起来像这样:

enter image description here

表A中的所有数据都是正确的。它包含158.000 EAN号码。在表B中,有大约5.000个EAN号。表B中有一些EAN编号,但是表A中没有。我需要创建一个新表,其中包含表A中的所有数据和表B中不在表A中的EAN编号。

起初我做了一个工会,然后是工会。这就是我发现存在重复值的方式。表B仅包含MeterNumberOfDigits,MeterConversionFactor和MeterUnitType的NULL值。我不知道如何正确地进行连接,以便保留这些行中的信息。

2 个答案:

答案 0 :(得分:3)

以下查询将为您提供table A的所有记录以及tableB中包含EANno中未找到table A的记录:

select [Your column list] from tableA A
inner join tableB B
on A.EANno = B.EANno

union all

select [Your column list] from tableB B
where B.EANno not in (select distinct EANno from tableA)

答案 1 :(得分:0)

select EAN from A union select EAN from B.

union all将保留重复值,union保持不变  不同的价值。

如果你这样做

select * from A union select * from B

相同的EAN行并不代表同一行,它们在其他列上可能不同

我希望这可以帮到你