我有 2 个表,如下所示:
表 1 包含UserID
和Name
而表 2 包含UserID
, Skill_ID
, 和SkillName
我想要做的是,我想搜索具有 2 技能的人,通过 SkillName 搜索。
例如:我有Andy,Name
因为他有 2 项技能PHP和C#,所以当我搜索PHP & C#时,Andy 将显示为结果。
有谁能够帮助我?谢谢你。
我有 2 个表,如下所示:
表 1 包含UserID
和Name
而表 2 包含UserID
, Skill_ID
, 和SkillName
我想要做的是,我想搜索具有 2 技能的人,通过 SkillName 搜索。
例如:我有Andy,Name
因为他有 2 项技能PHP和C#,所以当我搜索PHP & C#时,Andy 将显示为结果。
有谁能够帮助我?谢谢你。
SELECT a.Name
FROM table1 a
INNER JOIN table2 b
ON a.userID = b.user_ID
WHERE b.skill_name IN ('PHP','C#')
GROUP BY a.Name
HAVING COUNT(*) = 2
你的桌子的设计没有很好地规范化。关系的类型是Many-to-Many
,在这种情况下,这应该是三个表,Users
和Skills
链接表User_Skills
。
建议的设计是:
桌子User
桌子Skills
桌子User_Skills