SQL:需要帮助创建一对多集合比较查询

发布于 2024-09-24 10:50:08 字数 237 浏览 1 评论 0原文

参数如下:

  1. 我有一个名为 Tasks 的表,其中包含 ID 列(主键)和标签(文本)。
  2. 我有另一个名为“位置”的表,其中包含引用任务 ID 的外键和位置名称(文本)。
  3. 在我的代码中,我有一组位置。
  4. 更新:我需要一个查询来返回在我的集合中找到关联位置的所有任务。每个具有在我的集合中找不到的关联位置的任务都必须被丢弃。

解决这个问题的最佳方法是什么?

The parameters are thus:

  1. I have a table called Tasks with columns ID (primary key) and label (text).
  2. I have another table called Locations with a foreign key referencing Tasks' ID and a name for a location (text).
  3. In my code I have a set of locations.
  4. UPDATED: I need a query to return all tasks that have associated locations found within my set. Each task that has an associated location not found in my set must be thrown out.

What's the best way to go about this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

め七分饶幸 2024-10-01 10:50:08

对于修改后的要求:

select * from tasks t
where exists (select null from locations l
              where t.id = l.task_id and l.name in ('London', 'Geneva'...)) and
  not exists (select null from locations l
              where t.id = l.task_id and l.name not in ('London', 'Geneva'...))

For the modified requirement:

select * from tasks t
where exists (select null from locations l
              where t.id = l.task_id and l.name in ('London', 'Geneva'...)) and
  not exists (select null from locations l
              where t.id = l.task_id and l.name not in ('London', 'Geneva'...))
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文