SQL加入2个表

时间:2013-10-14 15:31:58

标签: sql

我想将两个表合并为一个,并在其旁边添加一个计数器。我现在拥有的是

SELECT [CUCY_DATA].*, [DIM].[Col1], [DIM].[Col2], 
  (SELECT COUNT([Cut Counter]) FROM [MSD] 
   WHERE [CUCY_DATA].[Cut Counter] = [MSD].[Cut Counter]
   ) AS [Nr Of Errors] 
FROM [CUCY_DATA] FULL JOIN [DIM] 
    ON [CUCY_DATA].[Cut Counter] = [DIM].[Cut Counter]

这样就插入了数据,但是插入了值不匹配的值。我想要这个例子

表CUCY_DATA

|_Cut Counter_|_Data1_|_Data2_|
|      1      |   12  |   24  |
|      2      |   13  |   26  |
|      3      |   10  |   20  |
|      4      |   11  |   22  |

表DIM

|_Cut Counter_|_Col1_|_Col2_|
|      1      |   25  |   40  |
|      3      |   50  |   45  |

他们需要合并到:

|_Cut Counter_|_Data1_|_Data2_|_Col1_|_Col2_|
|      1      |   12  |   24  |  25  |  40  |
|      2      |   13  |   26  |  25  |  40  |
|      3      |   10  |   20  |  50  |  45  |
|      4      |   11  |   22  |  50  |  45  |

这是错的:

|_Cut Counter_|_Data1_|_Data2_|_Col1__|_Col2__|
|      1      |   12  |   24  |  25   |   40  |
|      2      |   13  |   26  |  NULL |  NULL |
|      3      |   10  |   20  |  50   |   45  |
|      4      |   11  |   22  |  NULL |  NULL |

亲切的问候,鲍勃

1 个答案:

答案 0 :(得分:0)

如果你的DIM表中没有相应的行,你如何获得col1和col2值? (第2和第4行)。你的“错误”结果完全正确,这就是外连接的作用。