【发布时间】:2019-12-05 11:57:52
【问题描述】:
执行以下查询后,我从两个目录“catalogA”和“catalogB”中获取所有产品的 UNION 查询:
SELECT uniontable.PK, uniontable.creationtime AS TIMECREATED FROM
(
{{
SELECT {p:mode},{p:brandno},{creationtime} AS creationtime FROM {Product AS p JOIN catalogversion AS cv ON
{p:catalogversion}={cv:pk} JOIN catalog AS cat ON {p:catalog}={cat:pk}}
WHERE {p.code} = '145' AND {cv:version}='Staged' AND {cat:id}='catalogA'
}}
UNION ALL
{{
SELECT {p:mode},{p:brandno},{creationtime} AS creationtime FROM {Product AS p JOIN catalogversion AS cv ON
{p:catalogversion}={cv:pk} JOIN catalog AS cat ON {p:catalog}={cat:pk}}
WHERE {p.code} = '123' AND {cv:version}='Staged' AND {cat:id}='catalogB'
}}
) uniontable ORDERR BY TIMECREATED
我只需要来自 UNION 查询的 CatalogA 中的产品,所以我做了如下子查询,但它会引发错误。任何帮助将不胜感激?
查询 2:
SELECT uniontable.PK, uniontable.creationtime AS TIMECREATED FROM {Product AS p JOIN catalogversion AS cv ON
{p:catalogversion}={cv:pk} JOIN catalog AS cat ON {p:catalog}={cat:pk}}
WHERE {cv:version}='Staged' AND {cat:id}='catalogA' IN
(
{{
SELECT {p:mode},{p:brandno},{creationtime} AS creationtime FROM {Product AS p JOIN catalogversion AS cv ON
{p:catalogversion}={cv:pk} JOIN catalog AS cat ON {p:catalog}={cat:pk}}
WHERE {p.code} = '145' AND {cv:version}='Staged' AND {cat:id}='catalogA'
}}
UNION ALL
{{
SELECT {p:mode},{p:brandno},{creationtime} AS creationtime FROM {Product AS p JOIN catalogversion AS cv ON
{p:catalogversion}={cv:pk} JOIN catalog AS cat ON {p:catalog}={cat:pk}}
WHERE {p.code} = '123' AND {cv:version}='Staged' AND {cat:id}='catalogB'
}}
) uniontable ORDERR BY TIMECREATED
【问题讨论】:
-
只是我的理解,你为什么不直接通过查询产品表而不是UNION来获取数据。无论如何,让我根据你提到的场景来回答。