2012-10-14 83 views
2

我有兩個表具有相同字段。我希望將這些組合成一張大桌子。每個表的主鍵都是唯一的受訪者ID。使用UNION合併兩個表ALL

當我將這兩個表與UNION ALL組合在一起時,有些數據會被放到錯誤的字段中!爲什麼是這樣?它們位於原始表格的正確字段中。 UNION ALL是否是正確的操作符?

回答

6

要記住關於聯合會的事情是,結果數據集的列名將由聯合聲明中的第一個表定義。

此外,它們在表格結構的聲明中找到的順序將對此產生影響。

如果在表B定義爲名稱,電子郵件表A被定義爲名稱,地址,電子郵件,地址

select * from tableA 
union all 
select * from tableB 

會把tableB.Email在別名爲「地址」一欄,以解決這個問題,你ALL

select Name, Email, Address from tableA 
union all 
select Name, Email Address from tableB 
+0

我想你說我*必須*小心,並確保每個字段都與正確的字段配對。那是對的嗎? (我剛剛發現如何在Access中執行此操作。:) 順便說一句,UNION ALL與追加有什麼不同? Access中的 – user422318

+0

,一個APPEND語句,將一條記錄添加到表中。 UNION ALL做的是將兩個表中的所有記錄作爲單個數據結果返回,幷包含重複項。這與僅返回一組不同的結果數據的UNION相反。 –

+0

您可以使用APPEND或UNION ALL來合併表格嗎?
因此,UNION結合表和刪除重複? – user422318

4

UNION應該是正確的操作,但你在這兩個零件清單領域明確地通過名稱或沒有使用星號作爲通配符:必須在SELECT語句定義列?

+0

我用星號作爲通配符。我今天才知道,我應該配對每個字段而不是使用星號。 :) – user422318