1
   code    Attribute1(String)

    A         C
    B         D
    C         Empty
    D         Empty 

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

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

细节 :

我列出了一系列产品。

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

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

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

4

1 回答 1

0

我不完全理解,但你可以尝试这样的事情

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

你可以给它添加过滤器

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

使用联合

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
于 2018-12-13T08:14:06.900 回答