mysql更新包含来自另一个表的数据,并在两个字段上加入

时间:2014-12-02 13:04:55

标签: mysql

我需要用另外两个字段匹配的数据更新1个表。我有一个查询,但它只是锁定。

我有一个employees_training_courses表 我有一个company_training_categories表

我需要从company_training_categories获取ID,其中两个表中的name和account_id都相同。

到目前为止,我有这个......

update employee_training_courses tc join company_training_categories ctc on ctc.name = tc.name AND ctc.account_id = tc.account_id set tc.company_training_category_id = ctc.id;

我可以让查询继续运行,但它显然已经被挂起了!

1 个答案:

答案 0 :(得分:0)

这是您的查询:

update employee_training_courses tc join
       company_training_categories ctc
       on ctc.name = tc.name AND ctc.account_id = tc.account_id
    set tc.company_training_category_id = ctc.id;

这是一个非常合理的查询。您可能只需要索引来加快速度。我建议:

create index idx_company_training_categories_2 on company_training_categories(name, account_id)

甚至:

create index idx_company_training_categories_3 on company_training_categories(name, account_id, id)