【发布时间】:2019-07-21 09:55:14
【问题描述】:
我正在为 sql 中的关系划分而苦苦挣扎。我需要根据多个条件从同一个表中过滤数据。下面是我的表的架构。
| -------|----------------|-----------------|----------------|
|ID |Question |RespondentId |Answer |
| -------|----------------|-----------------|----------------|
|1 |Big |1 |Yes |
|2 |Big |2 |Yes |
|3 |Big |3 |No |
|4 |Gender |1 |Male |
|5 |Gender |2 |Female |
|6 |Gender |3 |Female |
|7 |Children |1 |No |
|8 |Children |2 |Yes |
|9 |Children |3 |No |
--------------------------------------------------------------
我需要这个名为 Answers 的表中的 RespondenId,它们与以下过滤器匹配:Question = Big Children 和 Answer = Yes 和 Yes 分别针对每个问题。因此,如果我有一个正确的 Sql 查询,我的结果应该返回以下数组:[2] 因为对于问题 ,唯一有答案的行 Yes >Big,Yes 问题 Children 的答案是 RespondentId = 2。
此外,提供的问题和答案不是固定的,应该是模块化的。例如,我应该能够更改答案或删除问题,而无需更改查询的整个结构。
你能帮我找到一个正确的查询这个问题吗?我一直在寻找@Erwin Brandstetter 提供的很多解释,但没有一个符合我的需求。
【问题讨论】:
标签: sql database postgresql filter relational-division