У меня есть две таблицы Person и Skill.
Person:
PersonID: AutoNumber
PersonName: String
Skill:
SkillID: AutoNumber
SkillName: String
У меня есть таблица соединений:
PersonSkills
PersonID: Number (FK to Person.PersonID)
SkillID: Number (FK to Skill.SkillID)
У меня две строки в таблице Person
PersonID PersonName
1 Bob
2 John
И четыре строки в таблице навыков
SkillID SkillName
1 English
2 French
3 Math
4 Science
И в таблице объединения есть
PersonID SkillID
1 1 (Bob - English)
1 3 (Bob - Math)
1 4 (Bob - Science)
2 2 (John - French)
2 3 (John - Science)
Я хочу получить список всех людей, у которых есть английский sh, математика и Наука как навык (включительно). Стандартный выбор
SELECT Person.PersonName, Skill.SkillName
FROM Person left outer join PersonSkills on Person.PersonID =
PersonSkills.PersonID left outer join on Skills on PersonSkills.SkillID =
Skills.SkillID
where Skill.SkillName in ('English','Math','Science')
вернет и Боба, и Джона.
Как мне получить только результаты, в которых присутствуют все три навыка?