私は、リクエストしたユーザのために半径内のすべてのユーザを取得しようとしていました。緯度と経度を格納する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
部分から来ることを知っているが、私はそれを固定されていませんでした。
私がしたいことは、GPS
のID=1
をすべてのユーザーと比較し、半径内にいる場合はそのデータを取得することです。
誰でも私の構文を助けることができますか?