如何将两个字段(不同)查询到一个字段中

时间:2014-09-11 18:03:30

标签: database nested field

我是新来的。 我已经完成了很多搜索,现有帖子已经回答了很多问题。 我认为我现在已经达到了真正的复杂性,因为我不再那么容易找到答案了。

我将尽可能简单地解释我的情况。

所以我有一个主物品代码表:

item
E01
E02
E03
E04

与主项目代码相关的子项目代码表(这可以捕获变化/大小) 它是与Master Item代码的一对多关系:

item    subItem
E02     E02_S
E02     E02_M
E02     E02_L
E03     E03A
E03     E03B
E03     E03C
E04     E04A_S
E04     E04A_M
E04     E04B_L
E04     E04B_XL

请注意,E01没有subItem,因为它不包含任何变体。

我执行了一个查询,在两个表之间使用连接来包含所有项和子项:

SELECT master.item, [Size List].subItem
FROM master Left JOIN [Size List] ON master.[item] = [Size List].[item];

item    subItem
E01 
E02     E02_S
E02     E02_M
E02     E02_L
E03     E03A
E03     E03B
E03     E03C
E04     E04A_S
E04     E04A_M
E04     E04B_L
E04     E04B_XL

列表符合预期,每个子项和主项占据一行。请注意,E02,E03和E04 plain在其子项可用时不占用一行,而E01占用一行,因为不存在变化。

如何更新此查询以将master和sub合并到一个字段,以便它们仍然按照连接的方式占用每一行?一般来说,我正在尝试创建一个唯一项目列表,其中子项目作为唯一项目替换其相关的主要级别。

* combinedItemList

E01
E02_S
E02_M
E02_L
E03A
E03B
E03C
E04A_S
E04A_M
E04B_L
E04B_XL

非常感谢任何帮助或见解。谢谢!

2 个答案:

答案 0 :(得分:0)

第一个语句获取所有没有子项的项目。

第二个语句获取项目值存在的所有子项并将它们组合在一起。

select DISTINCT master.item
from master
left join [Size List]
master.[item] = [Size List].[item]
where [Size List].subItem is  null
UNION
SELECT DISTINCT [Size List].subitem
FROM    [Size List] 

答案 1 :(得分:0)

谢谢!我编辑了你提供给以下代码,但我知道你得到了什么!我不知道工会可以轻松合并两个不同的领域。

select DISTINCT master.item
from master 
left join [Size List] 
On master.[item] = [Size List].[item] 
Where [Size List].subItem is  null
Union
SELECT DISTINCT [Size List].subitem
FROM    [Size List]