例がないと、何をする必要があるかを説明する方法がよくわからないので、自分自身を十分に説明できることを願っています!
MySQL データベースに次のテーブルがあるとします。
buyers
sellers
adverts
addresses
locations
object_addresses
テーブルbuyers
、sellers
およびテーブルadverts
はすべて「オブジェクト」です。それらは、 which has 、およびaddresses
によって関連付けられています。object_addresses
object_type
object_id
address_id
addresses
テーブルにはlocation_id
、場所に関連付けるための があります。
私が最終的に望んでいるのは、(locations
テーブルにある緯度と経度を使用して) 特定の距離内にあるすべての種類のオブジェクトを選択することです。
距離計算自体には問題ありません。ただし、すべての「オブジェクト」をそれぞれのアドレス/場所とともに選択するのに問題があります (それらはすべて object_address を使用するため)。
私は次のことができます:
SELECT * FROM buyers as b
INNER JOIN object_addresses as oa on oa.ObjectId = b.Id
INNER JOIN addresses as a on oa.AddressId = a.Id
INNER JOIN locations as l on a.LocationId = l.Id
WHERE oa.ObjectType = 'buyer';
上記のステートメントにsellers
組み込むのに苦労しています。adverts
これはおそらく簡単な答えですが、今夜はそれがわかりません。誰かが私を正しい方向に向けることができますか?