使用MySql左连接选择查询

时间:2018-06-18 12:38:54

标签: mysql sql select

我有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}}

有人可以告诉我如何正确地进行此查询吗?

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