簡體   English   中英

選擇查詢與MySql左聯接

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM