SQL,xQuery:查找重复项

SQL,xQuery:查找重复项,sql,xquery,xquery-sql,Sql,Xquery,Xquery Sql,我对SQL和xpath有一定的了解,但对xquery一无所知。如果一个字段中包含的XML具有同一元素的两个实例,而该元素也包含子元素的匹配数据,那么如何编写查询以获取所有记录 让我举例说明: 表:Fred 表字段:id、时间、xmlone、xmltwo。 我想在此表中查找xmlone具有如下内容的所有记录: <!--xmlstart--> <!--...any number of elements--> <elementone position="1">

我对SQL和xpath有一定的了解,但对xquery一无所知。如果一个字段中包含的XML具有同一元素的两个实例,而该元素也包含子元素的匹配数据,那么如何编写查询以获取所有记录

让我举例说明:

表:
Fred

表字段:
id、时间、xmlone、xmltwo。

我想在此表中查找
xmlone
具有如下内容的所有记录:

<!--xmlstart-->
<!--...any number of elements-->
<elementone position="1">
  <subelea>2010-01-01</subelea>
  <subeleb>hg72</subeleb>
  <subelec>George</subelec>
</elementone>
<!--...any number of elements here (may not end at same level)-->
    <elementone position="2">
      <subelea>2010-01-01</subelea>
      <subeleb>hg72</subeleb>
      <subelec>John</subelec>
    </elementone>
<!--xmlend-->

2010-01-01
hg72
乔治
2010-01-01
hg72
约翰

注意:我只希望在
subelea
subeleb
匹配的地方进行匹配。另外,可能有重复的
elementone
,但我不关心,除非
subelea
subeleb
的数据匹配。

谢谢但你能简化一下吗。正如我所说,“我对SQL和xpath有一定的了解,但对xquery一无所知”。如何将其合并为一个完整的语句?对于您提供的数据,它在BaseX中运行完全正常,在所有其他XQuery处理器中也应该如此。但是我忽略了你为你的问题添加了SQL XQuery标签——最好在你的问题中也包含这些信息。很抱歉,无法向您提供如何调用某些XQuery的信息,但您可能可以从其他问题复制粘贴此信息(只需单击该标记)。提供所有XML作为查询的输入,它应该可以正常运行。
(: Self-join on all <elementone/> :)
for $i in //elementone, $j in //elementone
where $i != $j
(: Compare `$i` and `$j` on the subelements that should be equal (or whatever) :)
and $i/subelea eq $j/subelea
and $i/subeleb eq $j/subeleb
(: Return result :)
return $i
(
  for $i in //elementone, $j in //elementone
  where $i != $j
  and $i/subelea eq $j/subelea
  and $i/subeleb eq $j/subeleb
  return $i
)/.