【发布时间】:2018-06-16 23:00:00
【问题描述】:
我使用 PostgreSQL10,我想构建具有多个可选参数的查询。
用户必须输入区域名称,但可以选择不选择以下
事件、事件日期、类别、类别日期、样式的任意组合或任意组合
因此,完整的查询可能是“所有银行(类别),建于 1990 年(类别日期),具有现代建筑(风格),于 1992 年在纽约市(地区)地区进行了翻新(事件和事件日期) ”。
我的问题是所有这些都在不同的表中,由多对多表连接,所以我不能做类似的事情
SELECT * FROM mytable
WHERE (Event IS NULL OR Event = event)
我不知道如果我只加入四张桌子会不会有什么好处。 我可以很容易地找到区域 ID,因为它是必需的,但除此之外,我不知道用户选择了什么。
关于如何使用 Postgre 解决此问题的任何建议?
【问题讨论】:
-
你快到了:
SELECT * FROM mytable WHERE EXISTS (SELECT* FROM correlated_tables that_you_want WHERE conditions_that_you_want);
标签: postgresql database-design parameters many-to-many query-performance