我有一个 mysql 查询,它从 2 个表“属性”和“报价”进行交互。
'offers' 表可以匹配属性表中的记录,方法是通过唯一代码或属性所在的县或地区引用特定记录。
这是我的查询示例...
SELECT *, ROUND(((3959 * acos(cos(radians(51.1080390)) * cos(radians(latitude)) * cos(radians(longitude) - radians(-4.1610140)) + sin(radians(51.1080390)) * sin( radians(latitude)))) * 2),0)/2 AS `distance`
FROM `properties` AS prop
LEFT JOIN `offers` ON prop.code = offers.the_property
LEFT JOIN `offers` AS offsCnty ON prop.county = offsCnty.the_county
LEFT JOIN `offers` AS offsRgn ON prop.region = offsRgn.the_region
HAVING distance <= 2.5
ORDER BY `sleeps` ASC, `distance` ASC
LIMIT 0, 10
在报价表中,有 3 列//the_property
对于将适当的报价与属性链接起来至关重要。如果要约适用于整个县,则该字段为空白,否则,如果要约针对特定财产,则此字段包含唯一的财产代码。the_county
the region
the_property
我认为通过使用多个 JOIN 将是解决方案,但是当 3 个主要offer
字段中的任何一个为空时,连接会为offers
表字段返回“NULL”。
这个怎么解决??
非常感谢