【发布时间】:2022-11-19 00:53:08
【问题描述】:
我有一个属性表:
+----+-----------------------------+
| prop_id | prop_name |
+---------+------------------------+
| 1 | Cottage |
+---------+------------------------+
| 2 | Mountain House |
+---------+------------------------+
| 3 | Beach house |
+---------+------------------------+
附件一表:
+----+-----------------------------+
| acc_id | acc_name |
+---------+------------------------+
| GAR | With garden |
+---------+------------------------+
| TER | With terrace |
+---------+------------------------+
| REN | Recently renovated |
+---------+------------------------+
关联属性和附件的表(properties2accessories):
+----+--------------+
| prop_id | acc_id |
+---------+---------+
| 1 | GAR |
+---------+---------+
| 1 | REN |
+---------+---------+
| 2 | GAR |
+---------+---------+
| 2 | REN |
+---------+---------+
| 2 | TER |
+---------+---------+
| 3 | GAR |
+---------+---------+
| 3 | TER |
+---------+---------+
我需要所有的属性全部我作为参数传递的配件。
正确的例子:
a) 带有“花园”和“最近装修”的房产:
我应该得到道具:1、2
b) 带有“花园”和“露台”的属性:
我应该得到道具:2、3
我尝试:
SELECT *
FROM properties2accessories
WHERE acc_id IN ('GAR', 'REN');
但这也得到了道具 3,但没有“最近翻新”
我正在使用 Postgres 13
有帮助吗?
【问题讨论】:
标签: sql postgresql relational-division