到目前为止,我正在处理我做过的最复杂的 SQL 查询,这对你们大多数人来说可能非常简单(:
我有三个表,用户、技能和 User_Skills。其中的领域应该是相当不言自明的。
我想选择具有一项或多项技能且符合我的标准的人。
我可以选择具有我所追求的技能的用户,但我不确定查询多个技能的语法。
我只想使用一个查询,所以我尝试使用 GROUP_CONCAT
这是我的 SQL:
SELECT User_id, first_name, last_name, county, GROUP_CONCAT(CAST(Skill_id AS CHAR))
FROM User LEFT JOIN User_Skills ON User.id = User_Skills.User_id
LEFT JOIN Skills ON User_Skills.Skill_id = Skills.id GROUP BY User_id
User_id first_name last_name county GROUP_CONCAT(CAST(Skill_id AS CHAR))
1000 Joe Blow West Yorkshire 8,6,1,9,7,3,5,10
1001 Fred Bloggs COUNTY1 5,8,2,7,9
1003 asdf asdf1 Some County 10,8,2
如何将搜索限制为仅具有技能 5 和 9 的人?