SQL SELECT 用于一对多特征关系以选择具有某些特征的键

标签 sql postgresql select

假设我有一个包含以下数据的表:

foreign-key | feature
          1 | a
          1 | b
          2 | a
          2 | b
          2 | c
          3 | a
          3 | c

我想要一个语句返回一个唯一的键列表,这些键同时分配了特征 a 和特征 b,所以结果行应该是“1、2”。

假设我想向查询添加额外的约束,如果整个事情没有嵌套到多个层中会很好。

最佳答案

这可以通过 group byhaving 来完成。

select foreign-key
from tbl 
where feature in ('a','b')
group by foreign-key
having count(distinct feature)=2

关于SQL SELECT 用于一对多特征关系以选择具有某些特征的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51480281/

相关文章:

sql - 使用 postgres_fdw 执行远程查询,使用索引

postgresql - 将数据库中特定架构上的所有内容授予 PostgreSQL 中的组角色

mysql - MySQL 如何替换第一次出现字符串后的所有内容

html - 如何在 <select> 元素旁边设置这个小按钮?

MYSQL:更新表时出错

sql - 使用 SQL Profiler 分析 Entity Framework 查询

python - 用 Python 解析 SQL

PHP 多种形式,第二个使用第一个的数据

sql - 如何检查sql server中的所有存储过程是否正常?

python - 使用 Sqlalchemy 计算列中的项目数