2016-12-02 81 views
1

我下面的查询工作不工作..子查询中documentdb

SELECT d.pub_user.userid FROM d where d.pri_data.user.email="[email protected]" 

这给了我如下导致..

[ 
    { 
    "userid": "1e4491ef27097262" 
    },..... 
] 

下面的查询也正在..

SELECT * FROM c WHERE c.pub_user.userid IN ("1e4491ef27097262") 

但是,当我尝试以下方法,它不工作..

SELECT * FROM c WHERE c.pub_user.userid IN (SELECT d.pub_user.userid FROM d where d.pri_data.user.email="[email protected]") 

它给出了一个错误.. Syntax error, incorrect syntax near 'SELECT'

任何帮助表示衷心感谢。

谢谢

+0

这个问题本质上是[this one]的一个重复(http://stackoverflow.com/questions/38078699/documentdb-sub-query)。 –

回答

4

子查询目前不支持。根据this的答案,您可以尝试利用存储过程。

当一个人开始触碰连接或子查询时,这是一个早期的指示,表明您的数据文档结构不是最优的。不过,我想知道为什么你不能在最后的例子中通过电子邮件查询没有子查询。像这样

SELECT * FROM c WHERE c.pri_data.user.email="[email protected]" 

如果这是不可能的,因为这些数据是在单独的文档中,也许电子邮件可能被添加到文档。

+0

以docdb开头..可以请你在我的情况下需要的存储过程帮助,tx .. – Arnab

+0

@Arnab - 请不要在评论中提出其他问题。并且构建存储过程不在此问题的范围内。 DocumentDB存储过程的大量文档。 –