将表记录映射到新表

时间:2015-12-04 04:01:45

标签: mysql

我有一张表格列出了公司及其业务活动。我正在尝试做以下事情:

  1. 检查承包商表中的primary_activity和secondary_activity
  2. 根据该值选择技能表中的相关技能
  3. 在contractor_skill数据透视表中创建一个条目。
  4. 我的目标是建立一个合适的标记系统。

    primary_activity / secondary_activity的值来自50个项目的列表,我有一个我要映射到的约80个技能的列表。

    以下是对我的表格的更好看:

    承包商表

    ------------------------------------------------------------------------------
    | id  | company_name  | primary_activity          | secondary_activity
    ------------------------------------------------------------------------------
    |  1  | Jones HVAC    | Plumbing, Heating and A/C | NULL
    

    技能表

    ----------------------------
    | id  | name               |
    ----------------------------
    |  1  | HVAC Installation  |
    ----------------------------
    |  2  | HVAC Repair        |
    ----------------------------
    

    contractor_skill表(目前为空)

    --------------------------------
    | id  |  contractor_id  |  skill_id
    --------------------------------
    |  1  |     1       |     1    
    --------------------------------
    |  2  |     1       |     2
    --------------------------------
    

    我知道我可以为每个业务活动 - 技能组合运行一个mysql查询,但结果却是大约200个插入语句,如下所示:

    INSERT INTO contractor_skill( 
      contractor_id, 
      skill_id) 
    SELECT id,
       "1"
    FROM contractors a
    WHERE a.primary_activity="Plumbing, Heating and A/C" 
    OR a.secondary_activity="Plumbing, Heating and A/C"
    

    我没有运行很多mysql查询,我想知道是否有一种不同的方法可以解决这个问题并不像手动那样?

0 个答案:

没有答案