通常咱们保留一个实体,这个实体可能有多个属性或者特色,比方咱们在应用搜寻性能的时候,会有一些关键词或者特色,随着咱们抉择的关键词越多,后果集会越来越少,如果存储的是这个一个简略模型(失常理论构造要比这个简单很多,这里只是为了阐明需要)
元素(item) | 属性(attr) |
---|---|
1 | a |
2 | a |
3 | a |
1 | b |
2 | b |
1 | c |
3 | c |
我想查问同时领有属性 a b 的元素
冀望失去如下的后果
item |
---|
1 |
2 |
能够应用 having 关键字
select item [table_name] where attr in (a,b) group by item having count(item) =2
如果要查问同时领有 a b c 属性的元素
冀望失去的后果是
item |
---|
1 |
同理 sql 是
select item [table_name] where attr in (a,b,c) group by item having count(item) =3
如果心愿查问至多领有 a b c 三个属性中的两个
冀望失去的后果是
item |
---|
1 |
2 |
3 |
sql 如下
select item [table_name] where attr in (a,b,c) group by item having count(item) >=2
注: HAVING 子句能够让咱们筛选分组后的各组数据