gpt4 book ai didi

html - “for” 子句在 XQuery 中如何工作?

转载 作者:行者123 更新时间:2023-11-30 21:43:31 25 4
gpt4 key购买 nike

我在学习XQuery时遇到了这个问题。
我不知道“for”子句在 FLWOR 表达式中是如何工作的。
下面的 XQuery 如何对 courseinstructorteaches 元素进行连接操作?$c之类的for中的变量是不是游标之类的东西?希望有人能详细说明下面XQuery的工作流程和for子句中变量的作用。

for $c in /university/course,
$i in /university/instructor,
$t in /university/teaches[$c/course_id= $t/course_id and $t/IID = $i/IID]
return <course_instructor> { $c $i } </course_instructor>

The “university” document (part 1)

The “university” document (part 2)

最佳答案

for是一个迭代子句。它根据给定的查询构造一个结果。让我们检查一下您的代码,看看它的含义..

for $c in /university/course/university/course 下的每个元素执行其作用域行(无论其下的代码是什么......) .同样适用于 /university/instructor/university/teaches .

没有 teaches 的过滤器如 [$c/course_id= $t/course_id and $t/IID = $i/IID] 中所述- 你基本上会有一个 CROSS JOINcource 之间, instructorteaches返回三个结果的乘积。

现在 - 我说交叉连接了吗?因为您还没有构造您预期的输出,所以这一定令人困惑。在每个连接语句中(如果您对 SQL 了解一点...)SELECT clause首先出现(即使它可能最后得到处理..),与构建逻辑的 XQuery 不同 - 然后您决定返回什么,如 return <course instructor> { $c $i } </course instructor> 中所述.

在你的return语句,您指示 XQuery:对于三个结果之间的交叉连接返回的结果中的每条记录,$c , $i$t - 创建一个新的 course instructor元素 - 并放置 $c$i作为其子元素。

注意事项:元素/属性名称不能包含空格。我不确定“类(class)讲师”将如何影响您的 xquery 的结果。 Refer here for more info

关于html - “for” 子句在 XQuery 中如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50550487/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com