У меня есть этот документ XML (короткая версия):
<Artiste>
<artiste a_id="A62" a_p_id="UK" a_date_nais="07/06/1952" a_sexe="M">
<a_prenom>Liam</a_prenom>
<a_nom>Neeson</a_nom>
</artiste>
<artiste a_id="A66" a_p_id="UK" a_date_nais="08/09/1971" a_sexe="M">
<a_prenom>Martin</a_prenom>
<a_nom>Freeman</a_nom>
</artiste>
<Film>
<film f_id="F1" f_p_id="FR" f_r_id="A61">
<f_genre>P</f_genre>
<f_titre>Banlieue 13</f_titre>
<f_date_sortie>10/11/2004</f_date_sortie>
<f_resume>fiction française</f_resume>
<f_role ro_nom="Leïto" ro_a_id="A63"/>
<f_role ro_nom="Lola" ro_a_id="A64"/>
</film>
<film f_id="F2" f_p_id="NZ" f_r_id="A59">
<f_genre>A</f_genre>
<f_titre>Les seigneurs des anneaux</f_titre>
<f_date_sortie>19/12/2005</f_date_sortie>
<f_resume>fiction américaine</f_resume>
<f_role ro_nom="Pêcheur" ro_a_id="A25"/>
<f_role ro_nom="Sirène" ro_a_id="A2"/>
</film>
</Film>
Артист играет в фильме (фильме), у художника есть поле 'a_id' в Artiste
, которое совпадает с полемro_a_id в Film
Я хочу выбрать имя и имя (a_prenom, a_nom
) всех артистов, которые сыграли хотя бы в 2 фильмах (film
)
Вот чтоЯ сделал:
for $artiste in doc('S:/path/file.xml')//Artiste/artiste
(: retrieve film $artiste is working in :)
let $film := ('S:/path/file.xml')//Film/film[@ro_a_id=$artiste/@a_id]
where count(@ro_a_id)>=2
order by $artiste/@a_id
return $x/a_nom, $x/a_prenom
Так что я не знаю, как присоединиться и сделать запрос, и я также не знаю, как вернуть 2 поля (я знаю, что строка $x/a_nom, $x/a_prenom
генерируетошибка)