緯度/経度の座標ペアの距離内にある場所を検索するクエリがあります。値が入力された例を次に示しlat
ますlng
。
SELECT
`id`,
( 3959 * acos( cos( radians('39.8657112') ) * cos( radians( `lat` ) ) * cos( radians( `lng` ) - radians('-86.1478729') ) + sin( radians('39.8657112') ) * sin( radians( `lat` ) ) ) ) AS `distance`
FROM `locations`
HAVING `distance` < 0.100000
私の問題は、これを複合クエリで使用して、別のクエリの結果をフィルタリングしたいということです。例えば:
SELECT * FROM `tickets` WHERE `location_id` IN ( <distance query goes here> );
ただし、距離クエリは 2 つの列 (id
とdistance
) を返すため、2 番目のクエリはカーディナリティ違反で失敗します。ERROR 1241 (21000): Operand should contain 1 column(s)
distance
s のリストのみが返されるように、クエリから列を返さないように MySQL に指示できる方法はありますid
か?