??在查询Access 2007-2010中组合,加入,插入?

时间:2016-06-08 21:39:59

标签: sql access

我想在一张桌子上制作两张桌子。

TABLE WASP_COLOR1

ID    NAME    COLOR    CODE     
1    WASP01    RED      RD  
2    WASP04    RED      RD  
3    WASP19    BLUE     BL  

TABLE WASP_COLOR2

ID   NAME     SIZE     CODE     
1    WASP01     6       RD   
2    WASP13    10       BL  
3    WASP22     4       BL   

我是新手,我需要明确指导如何获得这些结果。 (我希望合并重复项。)

TABLE WASP_COLOR1

ID   NAME     COLOR    SIZE    CODE     
1    WASP01    RED       6      RD     
2    WASP04    RED              RD     
3    WASP19    BLUE             BL     
4    WASP13             10      BL     
5    WASP22              4      BL    

我尝试了以下内容:

SELECT 
  distinct wasp_color2.name, wasp_color2.size, 
  wasp_color2.code, wasp_color1.name, wasp_color1.color, 
  wasp_color1.code 
INTO 
  wasp_color1
FROM 
  wasp_color2, wasp_color1;

收到错误

我试过了:

SELECT 
  distinct wasp_color2.name, wasp_color2.size, wasp_color2.code, 
  wasp_color1.name, wasp_color1.color, wasp_color1.code 
INTO 
  test
FROM 
  wasp_color2, wasp_color1;

收到9行而不是5行

我试过了:

SELECT 
  name.wasp_color1, name.wasp_color2, color, size, 
  code.wasp_color1, code.wasp_color2  
INTO 
  test
FROM wasp_color2, wasp_color1;

这要求输入参数值,这是一个手动输入和繁琐的

我试过了:

SELECT 
  coalesce name.wasp_color1, name.wasp_color2, color, 
  size, code.wasp_color1, code.wasp_color2  
INTO 
  test
FROM 
  wasp_color2, wasp_color1 full join;

收到错误

1 个答案:

答案 0 :(得分:0)

这样的MS访问可能不支持完全外连接。

这样做是为wasp_Color1生成两个数据集,在wasp_Color2中生成两个匹配的记录,反之亦然。然后将这些结果合并到一个数据集中,消除重复数据。

为了更好地理解联接:请参阅https://blog.codinghorror.com/a-visual-explanation-of-sql-joins/

Select WC1.Name, WC1.Color, WC2.Size, WC1.Code
FROM wasp_Color1 wc1
LEFT JOIN wasp_color2 wc2
 on wc1.Name = WC2.Name
and wc1.code = wc2.code

UNION

Select WC2.Name, WC1.Color, WC2.Size, WC2.Code
FROM wasp_Color1 wc1
RIGHT JOIN wasp_color2 wc2
 on wc1.Name = WC2.Name
and wc1.code = wc2.code