如果没有例子,我真的不确定如何解释我需要做什么,所以我希望我能很好地解释自己!
假设我的 MySQL 数据库中有以下表:
buyers
sellers
adverts
addresses
locations
object_addresses
表格buyers
和sellers
都是adverts
“对象”。它们与addresses
by object_addresses
which hasobject_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
上述陈述中。
这可能是一个简单的答案,但我今晚看不到。谁能指出我正确的方向?