我努力按作者的名字来订购电影的名称,这是我的意思;我想获得每位作者的电影的名称。 这是我的查询:
for $f in doc("Films.xml")//FILM,
$a in doc("Artistes.xml")//ARTISTE
where $a/@ID=$f/ROLES/ROLE/@acteur
order by $a/NOM
return string($f/@title)
资源:
<ARTISTES>
<ARTISTE ID='6'>
<NOM>Cameron</NOM>
<PRENOM>James</PRENOM>
<ANNEENAISS>1954</ANNEENAISS>
</ARTISTE>
<ARTISTE ID='3'>
<NOM>Hitchcock</NOM>
<PRENOM>Alfred</PRENOM>
<ANNEENAISS>1899</ANNEENAISS>
</ARTISTE>
</ARTISTES>
<FILMS>
<FILM titre='Vertigo'>
<ANNEE>1958</ANNEE>
<GENRE>Drame</GENRE>
<PAYS>USA</PAYS>
<MES>Hitchcock</MES>
<ROLES>
<ROLE acteur='3'>John Ferguson</ROLE>
<ROLE acteur='16'>Madeleine Elster</ROLE>
</ROLES>
</FILM>
<FILM titre='Alien'>
<ANNEE>1979</ANNEE>
<GENRE>Science-fiction</GENRE>
<PAYS>USA</PAYS>
<MES>Scott</MES>
<ROLES>
<ROLE acteur='6'>Ripley</ROLE>
</ROLES>
</FILM>
<FILM titre='Titanic'>
<ANNEE>1997</ANNEE>
<GENRE>Drame</GENRE>
<PAYS>USA</PAYS>
<MES>Cameron</MES>
<ROLES>
<ROLE acteur='3'>Rose DeWitt Bukater</ROLE>
<ROLE acteur='6'>Jack Dawson</ROLE>
</ROLES>
</FILM>
</FILMS>
如果有人能帮助我解决这个问题,我将不胜感激。
答案 0 :(得分:0)
首先将所有内容放入根元素。 这是我的尝试:
let $doc := doc('1.xml')
let $authors := for $i in $doc//ARTISTES/ARTISTE
return data($i/NOM)
for $author in $authors
for $mes in $doc//FILMS/FILM where xs:string($mes/MES) = xs:string($author)
return <Res>{data($author), data($mes/@titre)}</Res>