sql - 找出关系除法查询的问题
问题描述
我遇到了一些复杂的问题,我的小脑袋无法掌握。我有 4 个表,一个包含用户 id 的用户表,一个包含用户 id 和项目 id 的表报告,一个包含 id 和坐标(lon,lat)的表项目以及一个包含一堆的表位置坐标(经度,纬度)。
我想知道哪些用户在 X 年在某个纬度以上的所有位置上报告了一个项目。
我知道这将涉及某种关系划分,但我无法为它编写查询。
我的想法是我想选择不符合以下条件的用户:从某个纬度以上的所有位置中,删除特定用户报告的那些。如果返回为空,则表示用户已在该纬度以上的所有位置报告了一个项目。现在,你能给我一些关于查询部分的帮助吗?
例子:
USER_TABLE
user_email tony@gmail.com john@gmail.com geo@gmail.com
报告表
user_email | item_id tony@gmail.com | 1 geo@gmail.com | 2 geo@gmail.com | 3
项目表
item_id | lat 1 | 10 2 | 15 3 | 20
地点
lat 5 10 15 20
在这种情况下,如果我希望所有用户在 lat 值高于 12 的位置上报告了一个项目,它应该返回
geo@gmail.com
因为他在 lat = 15 和 lat = 20 上报告了一个项目,它们是纬度值 12 以上的所有位置的 lat 值。他 geo 只报告了 1 个项目,那么返回应该是空的
解决方案
推荐阅读
- python - 在有条件的数据框中查找不重复的行
- python - 将列标题更改为不同的颜色
- python - 如果提取 nan 值,则重复 .shift()
- node.js - 在谷歌计算 node.js 中创建图像的 VM
- terraform - GCloud 删除 CloudRun 域映射
- amazon-web-services - 如何在 aws lightsail 中重新启用 bitnami 横幅?
- javascript - Typescript 文件找不到 .d.ts 文件中定义的声明
- java - 我可以检测“合并到”H2 语句是否在内部使用插入或更新?
- opc-ua - 即使没有数据更改,有没有办法从 OPC UA 服务器获取订阅的采样间隔的通知?
- html - 尝试通过获取和发布将数据从 html 发送到谷歌电子表格