2016-12-02 8 views
1

Meine folgende Abfrage funktioniert ..Unterabfrage funktioniert nicht in documentdb

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

Das bin ich, wie unten gibt führen ..

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

Die folgende Abfrage auch funktioniert ..

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

Aber wenn ich Folgendes versuche, funktioniert es nicht ..

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

Es gibt einen Fehler .. Syntax error, incorrect syntax near 'SELECT'

Jede Hilfe ist herzlich willkommen.

Danke

+0

Diese Frage ist im Wesentlichen ein Duplikat von [dieser] (http://stackoverflow.com/questions/38078699/documentdb-sub-query). –

Antwort

4

Unterabfrage wird zur Zeit nicht unterstützt. Gemäß der Antwort this können Sie versuchen, eine gespeicherte Prozedur zu nutzen.

Wenn man anfängt, Joins oder Unterabfragen zu treffen, ist dies ein frühes Anzeichen dafür, dass Ihre Datenstruktur nicht optimal ist. Ich wundere mich jedoch, warum Sie in Ihrem letzten Beispiel nicht per E-Mail ohne Unterabfrage abfragen können. So ist das

Wenn dies nicht möglich ist, weil diese Daten in separaten Dokumenten sind, könnte vielleicht eine E-Mail zu den Dokumenten hinzugefügt werden.

+0

beginnend mit docdb .. können Sie bitte mit der gespeicherten Prozedur in meinem Fall, tx .. – Arnab

+0

@Arnab -Bitte stellen Sie keine zusätzlichen Fragen in den Kommentaren. Und das Erstellen einer gespeicherten Prozedur gehört nicht zu dieser Frage. Eine Menge Dokumentation über gespeicherte Prozeduren von DocumentDB. –

Verwandte Themen