xml - XQuery - 相当于 SQL NOT IN
问题描述
我有一个 SQL 查询,我想了解如何使用 XQuery 进行等效查询。
SELECT S.name
FROM SCHOOL AS S
WHERE S.name NOT IN (
SELECT S1.name
FROM SCHOOL AS S1, KID AS K
WHERE S1.county <> k.county AND S1.name = k.school_name
)
此查询查找只为与学校所在县居住的学生提供服务的学校。现在,这就是我认为 XQuery 中等效查询的样子:
for
$p in /Schools/School
where
not($p/Name = ( for
$s in /Schools/School
$k in /Kids/Kid
where
not($s/County = $k/County)
and $s/Name = $k/School_name
return $s/Name )
)
return $p/Name
我不确定我在这里所做的是否是合法的语法,以及它是否达到了预期的结果。我可以像以前那样嵌套 XQuery 查询吗?XQuery 语句中的第一个 where 条件会起作用吗?
如果我编写的 XQuery 不起作用,您如何获得与 SQL 的 NOT IN 类似的结果?
解决方案
你可以这样做,但它看起来很复杂。您觉得以下内容合适吗?
for $p in /Schools/School
where every $k in /Kids/Kid[School_name = $p/Name]
satisfies $k/County = $p/County
return $p/Name
推荐阅读
- r - 在计算 P^n 时,matrixpower() 和 markov() 有什么区别?
- javascript - 如何在自动输入javascript时更改textarea中的文本
- angular - Okta 登录小部件打破了 Jest 测试 - TypeError:无法读取 null 的属性“backingStorePixelRatio”
- go - 工作池实施上的退出通道
- internet-explorer-11 - 在 IE11 中禁用 HTTP2
- ruby - 如何使用 HTTParty 对 GitHub 进行身份验证以抓取页面?
- rabbitmq - 使用 MassTransit 时,发布者确认是否默认处于活动状态?
- python - 仅在拖动游戏窗口时才绘制对象
- flutter - Flutter 小部件测试:如果小部件有键,则 find.byKey 不起作用: GlobalKey(debugLabel: "gridView")
- c# - 无法在字符串中获取正则表达式匹配的值