交叉表更新无法正常工作

时间:2012-09-17 10:05:15

标签: mysql

我尝试了很多代码(有些来自stackoverflow),但没有一个可以工作。

这是我的mysql数据库的结构:

table hesk_tickets : id, name, email

table hesk_callers : empnum, email, dept

name中的hesk_tickets列引用了员工编号,empnum中的hesk_callers

一开始,hesk_tickets中没有其他员工信息,name。我想在其中添加更多员工信息,以便于回调。

然后我将包含员工信息的xls文件导入名为hesk_calles的新表中。我希望在与hesk_tickets中的员工编号匹配的行上更新hesk_callers列,例如电子邮件。

我试过了:

UPDATE hesk_tickets t1, hesk_callers t2
SET t1.email = t2.email
WHERE t1.name = t2.empnum;

也尝试了

UPDATE hesk_tickets ht
JOIN hesk_callers hc ON ht.name = hc.empnum
SET ht.email = hc.email

0行受影响。

hesk_tickets中有6000条记录,hesk_callers中有1000条记录。

任何解决方案都将受到赞赏,thx。

1 个答案:

答案 0 :(得分:1)

尝试执行

select count(*) from hesk_tickets ht join hesk_callers hc on ht.name = hc.empum

验证您确实要更新一些匹配数据。您可能会发现查询返回零。如果返回大于零的数字,则表示您的UPDATE查询影响零行,因为电子邮件地址已经匹配(因此不需要更新)