我有两张桌子,如下:
表1包含UserID和Name,而表2包含UserID、Skill_ID和SkillName
我想做的是,我想搜索一个有2项技能的人,通过SkillName搜索。
示例:我的Name是安迪,他有2个技能的PHP和C#,所以当我搜索PHP & C#时,安迪将被显示为结果。
有人能帮我吗?谢谢。
发布于 2013-02-01 17:02:46
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
https://stackoverflow.com/questions/14651292
复制相似问题