私はこのクエリを持っています。それは私に合併症を与えているようだ。 3番目のテーブルの制約を取り除くとうまくいきます。しかし私は、私が取り組んでいる検索を洗練するためには、3番目の表の制約が必要です。私の問題は、私にエラーを与えているのではなく、私が自分のDBに持っているデータで少なくとも1つの結果が得られるかのどちらかの結果が得られないことです。mysql複数の内部結合合併症
SELECT loc.*,
a.firstname,
a.lastname,
a.profileimg,
(((acos(sin((37.2790669*pi()/180)) * sin((`latitude`*pi()/180))+cos((37.2790669*pi()/180)) * cos((`latitude`*pi()/180)) * cos(((-121.874722 - `longitude`)*pi()/180))))*180/pi())*60*1.1515) AS `distance`
FROM geo_locations loc
JOIN memb_Info a ON a.mID = loc.mID
WHERE a.firstname LIKE 'Lisa%'
AND loc.primaryAddress = '1'
AND memb_x.xName LIKE '%Monkey'
ORDER BY `distance` ASC
私は
AND memb_x.xName LIKE '%Monkey'
を削除する場合、私は結果に何の問題を取得していないが、memb_xテーブルは、私が上記のクエリに適用したいが、私はように見えるその種類のフィルタであり、列のXNameを持っています私はそれをどのように処理すべきかで失われる。私は内部に正しく参加しようとしましたが、それは私には何の利点もありませんでした。その結果、重複した結果と結果が得られました。
だから、それを分解してください。私がしたいことは、メンバーのラジアル検索を行い、他のメンバーを見ることができるようにすることです。それは最初にgeo_locationsから出てきました。私はIDの情報を取得しようとしていますので、INNER JOINメンバfirstname lastnameなどのmemb_Infoテーブル。すべてのテーブル間の1つのコネクタは、メンバIDであるmIDです。今度は3番目のテーブルにあるこのメンバーIDには、同様のインタレストやフィルタを持つユーザーがいるので、これらのフィルタに基づいて結果を細くしたいのですが、これは私のクエリを適切に構成していない場所であり、
は、あなたがた条件に一致するデータを持っていますか? 'LIKE '%Monkey''は文字列が" Monkey "で終わらなければならないことを意味します。 –
あなたのクエリは 'memb_x'テーブルにまったく参加しません - エラーを返し、最初はうまくいかないでしょうか?あなたは '? JOIN memb_x ON memb_x.mID = a.mID'ここで、あなたの設定(INNER、LEFT、...)に適切な結合を選択します。 –
はい、私は達成したいものと一致する基準を持っています。ちょうど質問を正しいものにすることは、私のためには重要な部分です。そして、上記には参加していませんが、他のクエリと同様に、関連するものは何も得られなかったものを試してみました。 – chris