2016-06-08 67 views
0

我有兩張桌子,我想把它們製作成一張桌子。??結合,加入,插入查詢Access 2007-2010?

表WASP_COLOR1

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

表WASP_COLOR2

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

我是一個新手,我需要了解如何獲得這些結果明確的方向。 (我要重複的合併。)

表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; 

建議eived 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; 

收到的錯誤

+0

在正常的SQL,你會使用一個完全外部連接,Access不支持的,所以你必須使用LEFT JOIN,右連接和一個工會 – xQbert

+0

感謝您的回覆如此之快!我不確定在下面的語句中「wc1」和「wc2」是什麼? FROM wasp_Color1 wc1 LEFT JOIN wasp_color2 wc2 – MCALLEN3388

+0

這些是表別名。而不是每次輸入WASP_COLOR1或wasp_color2,而是告訴數據庫引擎使用WC1。它使閱讀變得更容易,輸入更少。您可以通過這種方式別名表和列 – xQbert

回答

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