【问题标题】:Hybris Flexible search union query to fetch productsHybris 灵活的搜索联合查询以获取产品
【发布时间】:2018-12-13 05:02:01
【问题描述】:
   code    Attribute1(String)

    A         C
    B         D
    C         Empty
    D         Empty 

如何获得所有A、B、C、D的pk

注意:使用字符串值 C,D 我想使用灵活搜索查询获取产品 C,D 的 pk 以及 A,B

详情:

我列出了一个产品。

在这些产品中都有一个名为“X”的属性,其中包含字符串类型的产品 ID 代码。

注意:“产品 ID 代码”是指产品列表中另一个产品的“产品 ID”。

现在我想根据产品 ID 代码获取 pk 的产品?

【问题讨论】:

  • 你能让你的问题更清晰易懂吗?现在它没有多大意义。
  • 最好添加数据模型并询问您想要实现的目标。你是想说你想查询Attribute1 哪个增益引用相同的表属性'code`?
  • @HybrisHelp 没错!

标签: sql hybris flexible-search


【解决方案1】:

我不完全理解,但你可以试试这样的东西

select {p1.pk},{p2.pk} from {product as p1},{product as p2} WHERE {p1.Attribute1} = {p2.code}

你可以给它添加过滤器

 AND {p1.Attribute1} in ('C','D')

使用 UNION

SELECT uniontable.PK FROM
(
   {{
      SELECT {p1:PK} AS PK FROM {Product AS p1},{Product AS p2} 
      WHERE {p1.code} = {p2.Attribute1}
   }}
   UNION ALL
   {{
      SELECT {p:PK} AS PK FROM {Product AS p}
      WHERE {p1.Attribute1} is not empty
   }}
) uniontable

带过滤器

SELECT uniontable.PK FROM
(
   {{
      SELECT {p1:PK} AS PK FROM {Product AS p1},{Product AS p2} 
      WHERE {p1.code} = {p2.Attribute1} AND {p2.Attribute1} in ('C','D')
   }}
   UNION ALL
   {{
      SELECT {p:PK} AS PK FROM {Product AS p}
      WHERE {p.Attribute1} in ('C','D')
   }}
) uniontable

【讨论】:

    猜你喜欢
    • 2017-09-14
    • 1970-01-01
    • 2021-08-31
    • 1970-01-01
    • 2022-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-16
    相关资源
    最近更新 更多