你好,我有兩個表和一個聯結表。我想找到所有的房產,有一個或多個舒適。我寫此查詢(postrgreSql):
SELECT DISTINCT "estates".*
FROM "estates"
LEFT JOIN "estate_comforts"
ON "estates"."id" = "estate_comforts"."estate_id"
WHERE "estate_comforts"."comfort_id" IN ('1', '2')
它找到具有第一舒適或第二屋,但我需要「與」的方式進行搜索。
該項目使用Yii2 framewors,所以普通的SQL或ActiveRecord的說法是可以接受的。
更新。此查詢選擇所有esates,無論是舒適的
SELECT DISTINCT "estates".*
FROM "estates"
LEFT JOIN "estate_comforts"
ON "estates"."id" = "estate_comforts"."estate_id"
AND "estate_comforts"."comfort_id" IN ('1', '2')
您在這裏同時使用MySQL和Postgresql嗎?請不要標記不涉及的產品。 – jarlh
不,我使用yii2 ActiveRecord與Postgres並從日誌中複製查詢。我可以給代碼,而不是產生這個查詢,但它是否有必要? – Skav
跳過WHERE子句,執行'AND「estate_comforts」。「comfort_id」IN('1','2')'獲得真正的左連接行爲! – jarlh