Sql 查找同一表中没有相似位置的条目

Sql 查找同一表中没有相似位置的条目,sql,oracle,join,Sql,Oracle,Join,假设我有一桌快餐店(快餐店)。它们中的每一个都在列geo_X和geo_Y中设置了地理坐标,以及列特许经营权。特许经营权可以是麦当劳或汉堡王 我想选择所有在特定距离内没有麦当劳的汉堡王,以地理坐标度测量 我该怎么做 我可以列出在一定距离内有麦当劳的汉堡王: select t.* from FASTFOOD t INNER JOIN FASTFOOD s ON (ABS(t.geo_x - s.geo_x) < 0.01 AND ABS(t.geo_y - s.geo_y) < 0

假设我有一桌快餐店(
快餐店
)。它们中的每一个都在列
geo_X
geo_Y
中设置了地理坐标,以及列
特许经营权
。特许经营权可以是麦当劳或汉堡王

我想选择所有在特定距离内没有麦当劳的汉堡王,以地理坐标度测量

我该怎么做

我可以列出在一定距离内有麦当劳的汉堡王:

select t.* 
from FASTFOOD t
  INNER JOIN FASTFOOD s ON (ABS(t.geo_x - s.geo_x) < 0.01 AND ABS(t.geo_y - s.geo_y) < 0.01) 
WHERE t.FRANCHISE= 'BURGERKING'
  AND s.FRANCHISE = 'MCDONALDS';
选择t.*
来自快餐店
内联快餐s ON(ABS(t.geo_x-s.geo_x)<0.01和ABS(t.geo_y-s.geo_y)<0.01)
其中t.特许经营=‘汉堡王’
和s.Francision=‘麦当劳’;
但我不知道如何找到“反面”


无论我使用的是
内部联接
左联接
右联接
、还是
完全外部联接
,我的查询结果集都是相同的,因为所有条目都设置了地理坐标。

尝试此操作

--下面提到的“geo_z”是两个特许经营权之间的指定距离

select * 
from (
  select t.* 
  from FASTFOOD t 
    inner join FASTFOOD s on t.PrimaryKey=s.PrimaryKey 
    where ABS(t.geo_x-t.geo_y) > geo_z
) d 
where d.FRANCHISE='BURGERKING'
我能列出在一定距离内有麦当劳的汉堡王

使用 [所有汉堡王]除了[附近有麦当劳的汉堡王]
那应该只剩下那些附近没有一个的

什么是“地理”坐标的定义?这是纬度/经度,平面二维网格上的点,还是其他?我相信我误解了您表中的数据,但是您能将t.geo_x-s.geo_x和t.geo_y-s.geo_y的-更改为a+?同样,我认为我误解了表中的数据,但对我来说,这将与所显示的函数相反