# Query: travel-sample # Flags: WordMatch RegExp # Including: ./docs-server # Excluding: *.html,*.json N1QL subquery pages modules/n1ql/pages/n1ql-language-reference/correlated-subqueries.adoc: 62: FROM `travel-sample` t1 64: FROM `travel-sample` t2 91: * FROM clause of the subquery in xref:n1ql-language-reference/subqueries.adoc#Q7[Q7] is an independent keyspace identifier `pass:c[`travel-sample`]` and hence the correlation with parent query is established explicitly using the USE KEYS clause through the referential attribute `t1.airlineid`. 94: * Similarly, the subquery in xref:n1ql-language-reference/subqueries.adoc#Q6A[Q6A] has an independent keyspace identifier `pass:c[`travel-sample`]` in FROM clause, but the correlation is self-referencing to the same document. 99: Note that, in `pass:c[`travel-sample`]` keyspace data model, the `"route"` documents refer the `"airline"` documents using the attribute `airlineid`. 126: FROM `travel-sample` route 127: JOIN `travel-sample` airline modules/n1ql/pages/n1ql-language-reference/subqueries.adoc: 33: FROM `travel-sample` t1 36: FROM `travel-sample` 56: FROM `travel-sample` WHERE type = "airport" 77: FROM `travel-sample` WHERE type = "airport" 105: For example, in the above query <>, the keyspace identifier `pass:c[`travel-sample`]` in the outer query is not considered a variable for the subquery. 116: FROM `travel-sample` t1 135: The reference to `t2` in the subquery is actually referring to the same document from `pass:c[`travel-sample`]` that is being processed as `t1` in the outer query. 143: FROM `travel-sample` t1 172: In the following equivalent queries, explicit alias `t` of `pass:c[`travel-sample`]` or LET variable `x` is treated as an expression and hence a nested path like `t.geo.lat` is allowed in the subquery FROM clause. 178: SELECT count(*) FROM `travel-sample` t 186: SELECT count(*) FROM `travel-sample` t 194: SELECT count(*) FROM `travel-sample` t 203: SELECT count(*) FROM `travel-sample` t 212: For example, the following example <> has no explicit alias for `pass:c[`travel-sample`]`. 213: So the `pass:c[`travel-sample`]` used in subquery FROM clause is considered keyspace identifier, but not an expression. 214: That makes the subquery non-correlated by the FROM clause, and the subquery returns all documents from keyspace `pass:c[`travel-sample`]`. 221: FROM `travel-sample` t1)) 222: FROM `travel-sample` LIMIT 4; 240: FROM `travel-sample` t; 258: FROM `travel-sample`)) 259: FROM `travel-sample`; 264: "msg": "Duplicate subquery alias travel-sample", 265: "query_from_user": "SELECT array_length((SELECT RAW t1.geo.alt \nFROM `travel-sample` ))\nFROM `travel-sample`;" 272: In the following example Q6C, the `from-term` has nested path `pass:c[`travel-sample`.geo]` as expression where `pass:c[`travel-sample`]` is referring to the implicit alias of the keyspace in the parent query. 280: FROM `travel-sample`.geo t1)) 281: FROM `travel-sample` 299: SELECT * FROM `travel-sample` t1 354: FROM (SELECT geo from `travel-sample` 393: The following two queries show valid and invalid examples with `travel-sample` data set. 401: FROM `travel-sample` t1 404: FROM `travel-sample`.geo t2)[0] > 4000; 408: "msg": "Ambiguous reference to field travel-sample.", 409: "query_from_user": "SELECT t1.city, t1.geo.alt\nFROM `travel-sample` t1\nWHERE t1.type = \"airport\" AND \n(SELECT RAW t2.alt \n FROM `travel-sample`.geo t2)[0] > 4000;" 419: FROM `travel-sample` t1 435: The following example demonstrates the power of using nested path expressions in xref:n1ql-language-reference/correlated-subqueries.adoc[correlated subqueries] over the array subdocument `pass:c[`travel-sample`.reviews]`. 443: FROM `travel-sample` AS t 469: FROM `travel-sample` AS t 471: FROM `travel-sample` tmp modules/n1ql/pages/n1ql-language-reference/subquery-examples.adoc: 15: FROM `travel-sample` AS t 45: FROM `travel-sample`.schedule s 48: FROM `travel-sample` 92: FROM `travel-sample` 94: FROM `travel-sample`.schedule as s WHERE s.day = 1)[0] > 4 121: FROM `travel-sample` AS t 153: MERGE INTO `travel-sample` t USING [{"id":"21728"},{"id":"21730"}] source 178: SELECT count(*) FROM `travel-sample` t 190: FROM `travel-sample` t1)) 191: FROM `travel-sample` LIMIT 4; 208: FROM `travel-sample` t; 223: Update `travel-sample` t1 set airportname_dup = "high_altitude_" || airportname 225: FROM `travel-sample` t2 236: UPDATE `travel-sample` t1 252: UPDATE `travel-sample` t1 268: INSERT INTO `travel-sample` t1 (KEY _k, VALUE _v) 270: FROM `travel-sample` t2 281: DELETE FROM `travel-sample` t