n1ql子查询处

发布于 2025-01-21 17:37:27 字数 742 浏览 4 评论 0原文

SELECT * 
FROM `masterdata` AS T1
WHERE T1.`$Type` = "ProEvent"
  AND Id IN (SELECT RAW A.DocId AS Id 
             FROM `masterdata` AS T
             UNNEST T.List AS A
             WHERE T.`$Type` = "CustomerAutoList"
               AND T.CustId = "202479")

当单独执行子查询时,将结果返回以下格式

[
  "PromoEvent::506427_43_503934_157",
  "PromoEvent::506427_43_509843_157"
]

,但是当在主查询中的“ where”条件中给出子查询时,结果为空

SELECT * 
FROM `masterdata` AS T1
WHERE T1.`$Type` = "ProEvent"
  AND Id IN (SELECT RAW A.DocId AS Id 
             FROM `masterdata` AS T
             UNNEST T.List AS A
             WHERE T.`$Type` = "CustomerAutoList"
               AND T.CustId = "202479")
SELECT * 
FROM `masterdata` AS T1
WHERE T1.`$Type` = "ProEvent"
  AND Id IN (SELECT RAW A.DocId AS Id 
             FROM `masterdata` AS T
             UNNEST T.List AS A
             WHERE T.`$Type` = "CustomerAutoList"
               AND T.CustId = "202479")

When subquery executed alone, returns the result in the below format

[
  "PromoEvent::506427_43_503934_157",
  "PromoEvent::506427_43_509843_157"
]

But when the subquery is given in "Where" condition in the main query, the result is empty

SELECT * 
FROM `masterdata` AS T1
WHERE T1.`$Type` = "ProEvent"
  AND Id IN (SELECT RAW A.DocId AS Id 
             FROM `masterdata` AS T
             UNNEST T.List AS A
             WHERE T.`$Type` = "CustomerAutoList"
               AND T.CustId = "202479")

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

惟欲睡 2025-01-28 17:37:27

您的查询应该起作用。检查provent文档的ID值。

尝试以下查询。如果仍然有发行项目文档并查看这些期望值,请检查其消除位置。

WITH docids AS (ARRAY_FLATTEN((SELECT RAW a.List[*].DocId
                               FROM `masterdata` AS a
                               WHERE a.`$Type`="CustomerAutoList" AND a.CustId="202479")
                              ), 1)
SELECT t.*
FROM `masterdata` AS t
WHERE t.`$Type`="ProEvent"
AND t.Id IN docids;

如果文档与“ prowent”的文档密钥相同

SELECT t.*
FROM `masterdata` AS a
JOIN `masterdata` AS t ON KEYS a.List[*].DocId
WHERE a.`$Type`="CustomerAutoList" AND a.CustId="202479";

Your query should work. Check Id value of ProEvent document.

Try the following query. If still has issue project docids and see those expected value then check where it eliminated.

WITH docids AS (ARRAY_FLATTEN((SELECT RAW a.List[*].DocId
                               FROM `masterdata` AS a
                               WHERE a.`$Type`="CustomerAutoList" AND a.CustId="202479")
                              ), 1)
SELECT t.*
FROM `masterdata` AS t
WHERE t.`$Type`="ProEvent"
AND t.Id IN docids;

If DocId is same as document key of "ProEvent"

SELECT t.*
FROM `masterdata` AS a
JOIN `masterdata` AS t ON KEYS a.List[*].DocId
WHERE a.`$Type`="CustomerAutoList" AND a.CustId="202479";
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文