[英]Select query with MySql left join
我有3張桌子(物業,設施,property_facility)
現在,我想從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
有人可以告訴我如何正確進行此查詢嗎?
您的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
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.