2016-12-02 132 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存儲過程的大量文檔。 –