【问题标题】:MySQL query to search for people with specific skillsMySQL 查询以搜索具有特定技能的人
【发布时间】:2010-12-27 15:11:16
【问题描述】:

我对 SQL 缺乏经验...我正在尝试弄清楚如何在我的数据库中搜索具有特定技能的人员。

我想生成一个包含两列名称和技能的表

初始搜索当前正在执行此查询:

SELECT  * 
FROM    User_Skills LEFT JOIN 
        skills ON User_Skills.Skill_id = Skills.id 
WHERE   Skill_id = 5 OR Skill_id = 7 // 5 & 7 are variables.

这会产生如下结果:

User_id     Skill_id    id   name
1000           5       5    Designer
1000           7       7    Data Analysis
1001           7       7    Data Analysis
1001           5       5    Designer

问题是……我这样做对吗?我正在寻找特定的技能。一旦找到技能,我应该使用 User_id 执行第二次查询吗?我不知道我是否需要两次返回名称,就像我将用户表加入到上述查询中一样。或者我应该加入用户表,然后以编程方式剔除我不需要的数据。

【问题讨论】:

    标签: mysql join


    【解决方案1】:

    我建议你看看 Group_Concat

    GROUP_CONCAT useful GROUP BY extension.

    【讨论】:

    • 这真的很酷!我从未在 SQL 中使用过 GROUP 函数!作为数据库的新手,我想知道您是否可以为我指明正确的方向。我不知道如何思考如何获得我想要的结果。假设我想返回所有具有技能 id 10 和技能 id 12 的用户,当我使用 WHERE SKill_id = 10 AND Skill_id = 12 进行查询时,它没有显示任何结果。如果我做 Skill_id = 10 OR Skill_id = 12,它不会给我想要的结果,因为我需要同时拥有两种技能的用户,而不是其中一种。这些是我想要的结果: User Skill_id Fred 10,11
    猜你喜欢
    • 1970-01-01
    • 2010-12-28
    • 2015-03-27
    • 1970-01-01
    • 1970-01-01
    • 2012-12-18
    • 2014-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多