假设我有一个带有以下条目的ASOC类型表:
+----------+----------+
| PERSON | SKILL |
+----------+----------+
| Bob | Java |
| Bob | Database |
| Sarah | Java |
| Sarah | HTML |
| Jane | Java |
| Jane | HTML |
| Jane | Database |
+----------+----------+
我想要一个查询,该查询将返回同时具有Java和数据库技能的人员列表,即Bob和Jane。
如果我运行类似的查询:
SELECT PERSON
FROM PERSON_SKILLS_ASOC
WHERE SKILL = 'Java'
OR SKILL = 'Database'
我也将得到Sarah,她没有资格担任我要填补的职位。我需要做某种联合/交叉查询吗?
我在使用MySQL。提前致谢。
最佳答案
select a.person
from (select person from person_skills_asoc where skill = 'Java') a
(select person from person_skills_asoc where skill = 'Database') b
where a.person = b.person;
要么
select a.person
from person_skills_asoc a, person_skills_asoc b
where a.person = b.person
and a.skill = 'Java'
and b.skill = 'Database';
关于mysql - 检索具有多个关联条目的行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17491875/