所以我有两张表。首先是姓名及其资格:
用户:
Name Qualification
---------------------
User1 QualA
User1 QualB
User1 QualC
User2 QualA
User2 QualD
Run Code Online (Sandbox Code Playgroud)
然后是第二个表,它将两个资格从第一个属性链接到另一个属性:
属性:
Attribute Qual1 Qual2
------------------------
Attr1 QualA QualC
Attr2 QualB QualC
Attr3 QualA QualD
Attr4 QualB QualD
Run Code Online (Sandbox Code Playgroud)
现在我想查询数据,所以我得到这样的回报:
User Attribute
------------------
User1 Attr1
User1 Attr2
User2 Attr3
Run Code Online (Sandbox Code Playgroud)
因此,如果名称具有属性所需的两个限定,则它们可以关联在一起。
我会用这个:
select
name, attribute
from
users inner join attributes
on users.qualification in (attributes.qual1, attributes.qual2)
group by attribute, name
having count(*)=2
Run Code Online (Sandbox Code Playgroud)
我试图根据属性所需的任何资格,将每个用户的每个资格与属性表连接起来。然后我按属性和名称分组并计算行数。
如果用户名和属性的组合有2行,则表示该用户对该属性有两个资格,我们必须将其显示出来。
归档时间: |
|
查看次数: |
1599 次 |
最近记录: |