我有2個表,如下面表格:搜索與多個參數查詢
表1包含UserID
和Name
而表2包含UserID
,Skill_ID
,並SkillName
我想要做的是,我想搜索具有2項技能的人,通過SkillName進行搜索。
例如:我有安迪爲Name
,他有2技能PHP和C#因此,當我搜索PHP & C#,安迪將顯示爲結果。
任何人都可以幫助我嗎?謝謝。
我有2個表,如下面表格:搜索與多個參數查詢
表1包含UserID
和Name
而表2包含UserID
,Skill_ID
,並SkillName
我想要做的是,我想搜索具有2項技能的人,通過SkillName進行搜索。
例如:我有安迪爲Name
,他有2技能PHP和C#因此,當我搜索PHP & C#,安迪將顯示爲結果。
任何人都可以幫助我嗎?謝謝。
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
1.規範化數據。你需要一個用戶表,一個技能表和一個表格(user_skills),它們相互關聯。 – Strawberry
感謝您的建議,我會盡力去做 – Diom