我試圖讓請求的用戶在半徑內的所有用戶。我創建了一個GPS(幾何類型)來存儲經度和緯度。Postgresql獲取用戶在一定範圍內
我用這個代碼:
SELECT * From UserAddresses
WHERE ST_DWithin(
(Select gps
from useraddresses
where ID=(Select UserAddressID
FROM Users WHERE ID=1)),
(Select gps
from useraddresses
WHERE ID IN (SELECT UserAddressID
FROM Users
WHERE ID!=1)),
1609*(Select DiscoveryDistance
From Users
WHERE ID=1),true)
但它返回此錯誤:
ERROR: more than one row returned by a subquery used as an expression
我知道這個錯誤來自SELECT UserAddressID FROM Users WHERE ID!=1
一部分,但我不能固定它。
我想要做的就是將ID=1
的GPS
與所有用戶進行比較,如果他們在半徑中獲取他們的數據。
任何人都可以幫助我的語法?