gpt4 book ai didi

MYSQL 选择具有特定技能的用户

转载 作者:行者123 更新时间:2023-11-29 09:20:39 25 4
gpt4 key购买 nike

我正在困惑地完成迄今为止我做过的最复杂的 SQL 查询,这对你们大多数人来说可能非常简单(:

我有三个表:User、Skills 和 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 的人员?

最佳答案

SELECT User_id, first_name, last_name, county, GROUP_CONCAT(CAST(Skill_id AS CHAR))
FROM User JOIN User_Skills ON User.id = User_Skills.User_id
JOIN Skills ON User_Skills.Skill_id IN (5,9)
GROUP BY User_id

如果你想防止多个技能记录,那么你可能需要一个子查询

SELECT User_id, first_name, last_name, county,
(
SELECT (GROUP_CONCAT(CAST(subSkill.Skill_id AS CHAR))
FROM Skills as subSkill WHERE subSkill.skill_id = User_Skills.skill_id
GROUP BY subSkill.skill_id
)
FROM User JOIN User_Skills ON User.id = User_Skills.User_id
JOIN Skills ON User_Skills.Skill_id IN (5,9)
GROUP BY User_id

关于MYSQL 选择具有特定技能的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1940531/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com