[英]How to write an inquiry flwor xquery?
I have 5 cars, each car with 5 owners, I need to return those owners whose nation does not appear in the owners of other cars (can appear in the owners of the same car): 我有5辆车,每辆车有5位车主,我需要返回那些国家/地区不在其他车主(可以出现在同一辆车的车主中)的车主:
<root>
<car>
<id>1</id>
<owner>
<name>George Smith</name>
<nation>USA</nation>
</owner>
<owner>
<name>Carolina Herre</name>
<nation>USA</nation>
</owner>
<owner>
<name>Martha Belar</name>
<nation>Denmark</nation>
</owner>
<owner>
<name>Fernando Izza</name>
<nation>Italy</nation>
</owner>
<owner>
<name>George Smith</name>
<nation>Italy</nation>
</owner>
</car>
<car>
<id>2</id>
<owner>
<name>George Gelar</name>
<nation>USA</nation>
</owner>
<owner>
<name>Gema Bio</name>
<nation>Spain</nation>
</owner>
<owner>
<name>Peter Vdf</name>
<nation>Denmark</nation>
</owner>
<owner>
<name>Felipe Rodriguez</name>
<nation>Denmark</nation>
</owner>
<owner>
<name>George Smith</name>
<nation>USA</nation>
</owner>
</car>
<car>
...
</car>
<car>
...
</car>
<car>
...
</car>
</root>
That is, given that xml, the output would be: 也就是说,给定xml,输出将是:
<owner>
<name>Fernando Izza</name>
<nation>Italy</nation>
<carID>1</carID>
</owner>
<owner>
<name>George Smith</name>
<nation>Italy</nation>
<carID>1</carID>
</owner>
<owner>
<name>Gema Bio</name>
<nation>Spain</nation>
<carID>2</carID>
</owner>
I tried to get the list of countries that do not appear in several cars, and then get those owners who are from those countries, but I do not know how to get it. 我试图获取未出现在多辆车中的国家/地区列表,然后获得来自那些国家/地区的车主,但我不知道该如何获得。
You can just group the owners by their nation and then look upwards to see if the nation occurs below more than one car: 您可以按所有者的国家对他们进行分组,然后向上看以查看该国家是否在一辆以上的汽车下面:
for $owner in doc("cars.xml")//car/owner
group by $nation := $owner/nation
where count($owner/..) eq 1
for $o in $owner
return <owner>{
$o/*,
<carID>{$o/../id/text()}</carID>
}</owner>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.