【问题标题】:How to query two fields (different) into one field如何将两个字段(不同)查询到一个字段中
【发布时间】:2014-09-11 18:03:30
【问题描述】:

我是新来的。 我进行了很多搜索,并且现有帖子回答了很多问题。 我想我现在已经到了真正复杂的地步,因为我不再那么容易找到答案了。

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

所以我有一个主项目代码表:

item
E01
E02
E03
E04

还有一个与主项目代码相关的子项目代码表(这会捕获变化/尺寸) 它与主项目代码是一对多的关系:

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 没有子项,因为它不包含任何变化。

我在两个表之间执行了一个查询,以包括所有项目和子项目:

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 因为不存在变化而占一行。

我将如何更新此查询以将主字段和子字段合并到一个字段,这样它们仍会像连接一样占据每一行?一般来说,我正在尝试创建一个独特项目列表,其中子项目充当独特的角色,替换其相关的主级别。

*combinedItemList

E01
E02_S
E02_M
E02_L
E03A
E03B
E03C
E04A_S
E04A_M
E04B_L
E04B_XL

任何帮助或见解将不胜感激。谢谢!

【问题讨论】:

  • 欢迎来到 Stack Overflow!我认为您已经很好地描述了您的问题,但您可能希望阅读帮助中心的 Formatting 部分,以便您可以格式化您的代码 sn-ps。

标签: database nested field


【解决方案1】:

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

第二条语句获取item值存在的所有子item,并将它们组合起来。

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] 

【讨论】:

    【解决方案2】:

    谢谢!我编辑了您提供给以下内容的代码,但我知道您在做什么!我不知道联合可以轻松地合并两个不同的字段。

    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] 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-10-20
      • 2020-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多