2015-10-06 52 views
1

所以問題是哪位導演至少演過兩部電影,電影的標題是什麼。XML是否可以在一個XQuery中使用兩個返回?

我知道怎麼弄的事實,但我不能讓我的查詢,以避免不必要的重複返回兩件事。

我的代碼如下所示:

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) 

現在這個返回1名董事和3個職稱但是結果看起來是這樣的:

主任 標題1

主任 標題2

導演 標題3

是否有可能得到它以這種格式

主任

標題1

標題2

TITLE3

用同樣的代碼?例如。通過某種方式在一個查詢中使用兩個單獨的返回?

回答

0

是的,這是可能的。第二個表達式可以按照$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) 
+0

感謝我沒有類似的東西! 用於不同值$導演($ X /導演) 其中count($ X [導演當量$導演])> 1個 設$ Y:= 在$ X 其中$標題/導演= $ $標題導演 回報($標題) 回報($總監,$ Y /標題) 解決我的問題! – Ptru

相關問題