XML 是否可以在一个 XQuery 中使用两个 returns?
Is it possible for XML use two returns in one XQuery?
所以问题是哪位导演至少执导过两部电影,电影的名字是什么。
我知道如何获取事实,但我无法在没有不必要的迭代的情况下查询 return 这两件事。
我的代码如下所示:
let $x := doc("/info.../videos.xml")/result/videos/video
for $director in distinct-values($x/director)
where count($x[director eq $director]) > 2
for $title in $x
where $title/director = $director
return ($director, $title/title)
现在这个 return 有 1 个导演和 3 个头衔,但是结果看起来像这样:
导演
标题 1
导演
标题 2
导演
标题 3
这种格式能不能搞定
导演
标题 1
标题2
标题 3
使用相同的代码?例如。通过某种方式在一个查询中使用两个单独的 returns?
是的,这是可能的。第二个表达式可以跟在第一个结果序列中的 $director
之后:
for $director in distinct-values($x/director)
where count($x[director eq $director]) > 2
return ($director,
for $title in $x
where $title/director = $director
return $title/title)
您还可以将标题查询的结果存储在变量中:
for $director in distinct-values($x/director)
let $titles :=
for $title in $x
where $title/director = $director
return $title/title
where count($x[director eq $director]) > 2
return ($director, $titles)
所以问题是哪位导演至少执导过两部电影,电影的名字是什么。
我知道如何获取事实,但我无法在没有不必要的迭代的情况下查询 return 这两件事。
我的代码如下所示:
let $x := doc("/info.../videos.xml")/result/videos/video
for $director in distinct-values($x/director)
where count($x[director eq $director]) > 2
for $title in $x
where $title/director = $director
return ($director, $title/title)
现在这个 return 有 1 个导演和 3 个头衔,但是结果看起来像这样:
导演 标题 1
导演 标题 2
导演 标题 3
这种格式能不能搞定
导演
标题 1
标题2
标题 3
使用相同的代码?例如。通过某种方式在一个查询中使用两个单独的 returns?
是的,这是可能的。第二个表达式可以跟在第一个结果序列中的 $director
之后:
for $director in distinct-values($x/director)
where count($x[director eq $director]) > 2
return ($director,
for $title in $x
where $title/director = $director
return $title/title)
您还可以将标题查询的结果存储在变量中:
for $director in distinct-values($x/director)
let $titles :=
for $title in $x
where $title/director = $director
return $title/title
where count($x[director eq $director]) > 2
return ($director, $titles)