私はmysqlテーブルで2緯度と2経度を使用しています。いくつかのレコードが複数の場所を持つため、私は緯度と経度の両方のレコードを結合しています。しかし、UNIONを使用してレコードを結合する際には、以前に作成された重複レコードがいくつか作成されます。だから、重複レコードを避ける方法。誰かが私を助けてくれますか?UNIONを使用して重複レコードを削除する方法
重複するレコードの作成方法。 たとえば、2つの場所の距離が1つのレコード500km、ただし、HAVING距離を500km以上使用している場合。緯度は記録を一度引っ張り、感謝は記録を一度引っ張る。 2つのレコードを得ることができます。だから、これが問題です。
SELECT * , (6371 * acos(cos(radians($Latitude)) * cos(radians(latitude)) * cos(radians(longitude) - radians($Longitude)) + sin(radians($Latitude)) * sin(radians(latitude)))) AS distance
FROM mytable
HAVING distance < $Distance
UNION DISTINCT
SELECT * , (6371 * acos(cos(radians($Latitude)) * cos(radians(latitude1)) * cos(radians(longitude1) - radians($Longitude)) + sin(radians($Latitude)) * sin(radians(latitude1)))) AS distance
FROM mytable
HAVING distance < $Distance
ORDER BY distance
デフォルトでUNIONはDISTINCTです。サンプルデータを提供できますか?重複した行が本当にありますか? – Dekel
あなたは 'UNION'同じテーブルですが、これのポイントは何ですか? –
はい、これは緯度から来て、同じレコードが再びlatitude1によって返されます –