首页 > 解决方案 > 找出关系除法查询的问题

问题描述

我遇到了一些复杂的问题,我的小脑袋无法掌握。我有 4 个表,一个包含用户 id 的用户表,一个包含用户 id 和项目 id 的表报告,一个包含 id 和坐标(lon,lat)的表项目以及一个包含一堆的表位置坐标(经度,纬度)。

我想知道哪些用户在 X 年在某个纬度以上的所有位置上报告了一个项目。

我知道这将涉及某种关系划分,但我无法为它编写查询。

我的想法是我想选择不符合以下条件的用户:从某个纬度以上的所有位置中,删除特定用户报告的那些。如果返回为空,则表示用户已在该纬度以上的所有位置报告了一个项目。现在,你能给我一些关于查询部分的帮助吗?

例子:

在这种情况下,如果我希望所有用户在 lat 值高于 12 的位置上报告了一个项目,它应该返回
geo@gmail.com
因为他在 lat = 15 和 lat = 20 上报告了一个项目,它们是纬度值 12 以上的所有位置的 lat 值。他 geo 只报告了 1 个项目,那么返回应该是空的

标签: sqlpostgresql

解决方案


推荐阅读