多对多的关系

时间:2015-06-20 06:50:01

标签: sql excel join union

我每周都会收到3个excel文件。第一个是来自部门A的项目,其中Project_ID为x列数。第二个是来自部门B的项目,同样具有Project_ID x列数。这些项目通常是相关的(多对多关系),因此我将收到第三个excel,其中包含哪些项目属于哪些项目的映射。稍后此过程将自动进行,因此我想尝试提前创建一个合适的SQL解决方案。

我的输出应该按如下方式显示相关项目:

<br />Department A | Project_ID | Project name | etc
<br />Department B | Project_ID | Project name | etc
<br />Department B | Project_ID | Project name | etc

此外,应该有一个项目没有映射的指示(尚未)。

我试过了: 为每个excel文件创建一个表。然后将Department A项目完全加入项目B,以便所有项目都在表中,而不管链接如何。但是,此结果显示相关项目彼此相邻,而不是下方。为了进一步说明,我创建了一个小例子in excel。标签代表文件,映射或输出。

希望你能够给我正确的推动力!感谢

1 个答案:

答案 0 :(得分:0)

好像你想使用union all,而不是加入:

SELECT 'Department A', id, name
FROM   projects_a
UNION ALL
SELECT 'Department B', id, name
FROM   projects_b
UNION ALL
SELECT 'Department C', id, name
FROM   projects_c
UNION ALL
SELECT 'Department D', id, name
FROM   projects_d