2 つのクエリを 1 つにまとめようとしています。ご協力いただければ幸いです。
このクエリは、特定の距離内にあるエントリ (郵便番号) のリストを取得します。それはうまくいきます。(現在のところ、$lat、$lng、$zip、および $size はハードコーディングされています)。
ここで、これらの郵便番号に一致する別のテーブルからのエントリの検索と組み合わせて使用する必要があります。
これは私のクエリです:
SELECT
source.zc_zip,
source.zc_location_name,
ACOS(
SIN(RADIANS(zc_lat)) * SIN(RADIANS($lat))
+ COS(RADIANS(zc_lat)) * COS(RADIANS($lat)) * COS(RADIANS(zc_lon)
- RADIANS($lng))
) * 6371 AS distance
FROM zip_coordinates AS source
WHERE zc_id <> $zip
GROUP BY source.zc_zip
HAVING distance < $size
ORDER BY distance LIMIT 10;
source.zc_zip が info.meta_value と同じ場合に一致するため、既に次のように変更しました。
SELECT
source.zc_zip,
source.zc_location_name,
info.*,
ACOS(
SIN(RADIANS(zc_lat)) * SIN(RADIANS($lat))
+ COS(RADIANS(zc_lat)) * COS(RADIANS($lat)) * COS(RADIANS(zc_lon)
- RADIANS($lng))
) * 6371 AS distance
FROM zip_coordinates AS source, wp_postmeta AS info
WHERE zc_id <> $zip AND info.meta_value = source.zc_zip
GROUP BY source.zc_zip
HAVING distance < $size
ORDER BY distance LIMIT 10;
言うまでもなく、このクエリは非常に遅いです (> 1 秒)。
誰でもそれを手伝ってもらえますか?ありがとう!:-)
– ドミニク