私はusers2
テーブルから*
を取得しようとしています。ユーザーの所在地が指定された半径内にあるテーブルです。2つのテーブルのサブクエリを結合する
ロケーションクエリはuser_location2
テーブルで正常に動作します。
SELECT uid, (3959 * acos(cos(radians(28.247800068217)) * cos(radians(`lat`)) * cos(radians(`lon`) - radians(-80.726205977101))
+ sin(radians(28.247800068217)) * sin(radians(`lat`))))
AS distance FROM user_location2
HAVING distance <= 25 ORDER BY time_stamp
と内側は、私はちょうどトラブル2を組み合わせることを抱えている場所のサブクエリ
SELECT *
FROM users2
LEFT JOIN user_location2
ON user_location2.uid = users2.id
せずに罰金作品に参加します。ここに私の現在のクエリだけですべての行を返すので、私は明らかに何か間違っている。
SELECT *
FROM users2
LEFT JOIN user_location2
ON user_location2.uid = users2.id
WHERE EXISTS (SELECT NULL, (3959 * acos(cos(radians(26.247800068217)) * cos(radians(`lat`)) * cos(radians(`lon`) - radians(-89.726205977101)) + sin(radians(26.247800068217)) * sin(radians(`lat`))))
AS distance FROM user_location2
HAVING distance <= 5 ORDER BY time_stamp)
編集は私が結果に含まれてはならない可能性の行の多くを排除するために第三表(user_like)に追加するために願っています
が含まれています。
のスクリプトがしたがって、基本的にユーザーが89、90および91は、位置半径の下に下落するだろう= 88
user_idのために実行されているが、ユーザー88ため、結果には含まれないであろうとしましょうすでにそれらを好きだった。
素晴らしいこと!うまくいっているようだ。 users2からいくつかのWHERE句を投げることは可能ですか? WHERE users2.age>のように25 –
はい。条件の前後に追加し、必要に応じてANDまたはORを使用してください。 – clinomaniac
チャンスがあったときに編集した質問を確認できますか?私は本当にそれを感謝します。 –