Hybris 灵活的搜索联合查询来获取产品

Hybris Flexible search union query to fetch products

   code    Attribute1(String)

    A         C
    B         D
    C         Empty
    D         Empty 

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

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

详情:

我有一个产品列表。

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

注意:"Product ID Code" 表示产品列表中的另一个产品 "Product ID"。

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

我不是很明白,不过你可以这样试试

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