0

我有 2 个相似但不相同的表,因此不可能进行联合。我需要合并表格,记住大约有 40 列,其中只有 20 列是共有的。关于最佳方法的任何想法?

Table1

ActivityCategory    ActivityType   Nationality   Language
---------------------------------------------------------
Communication       Telephone      French        French
Meeting             Session        British       English


Table2

ActivityCategory    ActivityType   Nationality   Employment
-----------------------------------------------------------
Communication       Fax            American      Employed


Combined Table

ActivityCategory    ActivityType   Nationality   Language   Employment
----------------------------------------------------------------------
Communication       Telephone      French        French
Meeting             Session        British       English
Communication       Fax            American                 Employed
4

3 回答 3

5

做一个 UNION 但首先你必须使表的结构相同。

在 Table1 的 SELECT 中,添加就业作为 NULL 值列

在 SELECT for Table2 中,将 Language 添加为 NULL 值列

SELECT ActivityCategory, ActivityType, Nationality, Language, NULL AS Employment
FROM Table1
UNION
SELECT ActivityCategory, ActivityType, Nationality, NULL AS Language, Employment
FROM Table1
于 2009-09-30T19:05:01.747 回答
1

Raj 的建议很好,但您可能想要执行 UNION ALL 而不是 UNION。

BOL

UNION ALL 将所有行合并到结果中。这包括重复项。如果未指定,则删除重复的行。

使用 UNION 付出了保证没有重复的代价,但在你的情况下,听起来你无论如何都不会有重复。

于 2009-09-30T23:30:18.593 回答
1

联合什么是可能的联合,然后加入其余的列?

如果您只需要这样做一次,那很有可能。我想即使有一个观点也有可能做到这一点。

于 2009-09-30T19:03:13.897 回答