我有3个表(属性,设施,property_facility)
现在我想将LEFT JOIN
表中的所有工具与属性数据一起提供给定的属性ID。
我尝试使用SELECT property_id
, contract_id
, type_id
, location_id
, beds
, ROUND(price,3) as price
, f.facility_id
, f.name
, pf.facility_id
FROM facility f
LEFT JOIN property_facility pf ON pf.facility_id = f.facility_id AND pf.property_id = 6
LEFT JOIN property p USING(property_id)
WHERE p.property_id = 6
,如下所示。但我无法从设施表中获得所有设施。
{{1}}
有人可以告诉我如何正确地进行此查询吗?
答案 0 :(得分:0)
您的WHERE
子句正在过滤掉不匹配的设施。您需要将USING
切换为ON
并执行:
FROM facility f LEFT JOIN
property_facility pf
ON pf.facility_id = f.facility_id AND
pf.property_id = 6 LEFT JOIN
property p
ON p.property_id = pf.property_id AND p.property_id = 6
您似乎理解这个概念,因为您对第一个JOIN
使用相同的条件。
property_id
并没有改变。因此,如果您愿意,可以删除WHERE
子句并继续使用USING
。