我来自 SQL 背景,但我必须使用 Xquery 为我的公司开发一个项目,我想我会试一试。
我正在为客户使用 XML 数据库,该数据库存储有关谁是项目的 PM 以及谁是项目的分析师的信息。它的项目元素列出了 ID 为 pid 的项目,还有员工元素列出了他们 PM 的项目(以单个逗号分隔的字符串列出)和他们管理的项目(类似列出)。我的任务是找到所有管理和 pm 项目的人,并列出这些项目。
我的问题是:如何在同一个员工元素下返回每个项目名称,而不是每个元素返回 1 并多次列出员工元素?
for $e in //employee,
$p in //project
where $e/contains(@analysts, $m/@pid)
and $e/contains(@pms, $m/@pid)
return
<double-roles>
<emp-name>{$p/name/text()}</emp-name>
<proj-name>{$p/name/text(), “{“, $p/date/text(), “}”}</proj-name>
</double-roles>