你好,我有两个表和一个联结表。我想找到所有的房产,有一个或多个舒适。我写此查询(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