加入两个没有额外行的表

时间:2014-05-05 13:20:03

标签: sql join sql-server-2012

我已经尝试了很多,但我没有得到我想要的结果。

假设我在第一张表中得到以下数据:

ColA  ColB   ColC  ColD
AA     11     1    50€
AA     11     1    60€
AA     11     1    10€
BB     22     1    15#

在表B中我有这个:

ColA  ColB   ColC   ColD
AA     11     1      Delta
AA     11     1      Delta
AA     11     1      Delta
BB     22     1      Gamma
BB     22     1      Gamma

我需要创建一个看起来像这样的表 - 只注意4行,而不是我正在使用的内连接产生的11行。

ColA  ColB   ColC  ColD     ColE
AA     11     1    50€      Delta
AA     11     1    60€      Delta
AA     11     1    10€      Delta
BB     22     1    15€      Gamma

如果有人知道如何完成这项工作,那将非常感激。

3 个答案:

答案 0 :(得分:1)

试试这个:

SELECT A.ColA,
   A.ColB,
   A.ColC,
   A.ColD,
   B.Cold AS ColE
FROM Table_A AS A
JOIN Table_B AS B
  ON B.ColA = A.ColA
 AND B.ColB = A.ColB
GROUP BY A.ColA,
   A.ColB,
   A.ColC,
   A.ColD,
   B.Cold

答案 1 :(得分:1)

试试这个;

SELECT A.ColA,A.ColB,A.ColC,A.ColD,B.ColD as BCol
FROM TableA A JOIN
     TableB B ON A.ColA=B.ColA AND A.ColB=B.ColB AND A.ColC=B.ColC
GROUP BY A.ColA,A.ColB,A.ColC,A.ColD,B.ColD

结果:

COLA    COLB    COLC    COLD    BCOL
AA      11      1       10€     Delta
AA      11      1       50€     Delta
AA      11      1       60€     Delta
BB      22      1       15#     Gamma

请参阅SQL Fiddle中的结果。

答案 2 :(得分:-1)

你能用这个:

select a.ColA,a.ColB,a.ColC,a.ColD,b.ColD
from table_a a inner join table_b b
on a.ColA = b.ColA
group by a.ColA,a.ColB,a.ColC,a.ColD,b.ColD