我正在编写查询以查找到某个位置的最远点。我的查询如下:
select sighting_ID, SQRT( POWER((28+latitude),2) + POWER((longitude-151),2)) AS distance
FROM sightings
WHERE NOT EXISTS(SELECT sighting_id
FROM sightings
WHERE SQRT( POWER((28+latitude),2) + POWER((longitude-151),2)) <
(SELECT SQRT( POWER((28+latitude),2) + POWER((longitude-151),2))
FROM sightings s1 join sightings s2
WHERE s1.sighting_ID = s2.sighting_ID));
但是发生错误
第一行的错误,其中s1.sighting_ID = s2.sighting_ID':ORA-00905: 缺少关键字'
我不知道我做错了什么。
以前的问题已经解决了。这是我的新查询。
select sighting_ID, SQRT( POWER((28+latitude),2) + POWER((longitude-151),2)) AS distance
from sightings
WHERE NOT exists
(SELECT sighting_id
FROM sightings
WHERE SQRT( POWER((28+latitude),2) + POWER((longitude-151),2)) <
( SELECT SQRT( POWER((28+s1.latitude),2) + POWER((s1.longitude-151),2))
FROM sightings s1 join sightings s2
ON s1.sighting_ID = s2.sighting_ID
));
但是它说最后一个选择返回多行。我明白这个错误按摩意味着什么。但是,如何让查询比较(&lt;)每个元组由每个元组返回的每个元组?
答案 0 :(得分:0)
您使用ON
来JOIN
而不是WHERE
FROM sightings s1
join sightings s2
ON s1.sighting_ID = s2.sighting_ID
));