select查询与mysql左连接

nnvyjq4y  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(273)

我有3张table(财产、设施、财产和设施)
现在我要从 facility 将属性数据与给定的属性id单独放在表中。
我试过了 LEFT JOIN 如下所示。但我无法从设备表中获取所有设备。

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

有人能告诉我如何正确地提出这个问题吗?

qvk1mo1f

qvk1mo1f1#

你的 WHERE 子句正在筛选出不匹配的设施。您需要切换 USINGON 然后做:

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 如果你愿意的话。

相关问题