Xquery 将结果传递给变量

Xquery 将结果传递给变量,xquery,Xquery,好的,首先让我说我对XQuery完全陌生。我两天前才开始学的。 现在,我的任务涉及使用3个单独的xml文件,这些文件基本上包含表 第一个名为dependent.xml的文件包含以下字段:essn、dependent_name、relationship 第二个名为employees.xml的文件包含以下字段:fname、lname、ssn、dno 第三个名为department.xml的文件包含以下字段:dname、dnumber、mgrssn 因此,这些表之间的关系是:essn=ssn、ssn=

好的,首先让我说我对XQuery完全陌生。我两天前才开始学的。 现在,我的任务涉及使用3个单独的xml文件,这些文件基本上包含表

第一个名为dependent.xml的文件包含以下字段:essn、dependent_name、relationship

第二个名为employees.xml的文件包含以下字段:fname、lname、ssn、dno

第三个名为department.xml的文件包含以下字段:dname、dnumber、mgrssn

因此,这些表之间的关系是:essn=ssn、ssn=mgrssn和dno=dnumber

我需要返回所有家属的列表,以及他们对应的员工和这些员工对应的经理。到目前为止,我的代码是这样的:

{
    for $d in doc("../company/dependent.xml")//dependent,
        $e in doc("../company/employee.xml")//employee
    where $d/essn = $e/ssn
    return
      <dependent
      name="{ $d/dependent_name }"
      fname="{ $e/fname }" lname="{ $e/lname }"
      />
}
这给了我一个所有家属及其对应员工的列表,所以到目前为止一切都很好

问题是,经理也是员工,所以他们的名字在employee表中。因此,我需要将有家属的员工的dno与department表中的DNNumber进行匹配,以获得这些部门的mgrssn,然后将这些mgrssn与员工ssn进行匹配,以获得经理姓名

我的想法是将我从代码中获得的有家属的员工的dno存储在一个变量中,然后使用该变量获取这些部门的经理,然后像这样使用它:

{
    for $d in doc("../company/department.xml")//department,
        $e in doc("../company/employee.xml")//employee
    where $d/mgrssn = $e/ssn and $d/dnumber = $**variable**
    return
      <manager
      fname="{ $e/fname }" lname="{ $e/lname }"
      />
}
问题是我不知道怎么做,我意识到这将是一个单独的for循环。有没有一种方法可以在一个for循环中完成这一切?
另外,如果有一种更简单的方法来满足我的需要,那么我也愿意接受建议:

您能提供指向您问题中的XML文件或示例XML的链接吗?这是从属文件中的一个条目。123456789 Alice女儿员工档案。约翰·史密斯123456789 5部门档案。总部1888665555行政部4987654321我发现不需要更多的帮助。谢谢你。