使用内部的 Mysql 更新永远不会结束无限循环,但 select 有效
我正在尝试更新此 mysql 表列,从将 employee 值存储为名称字符串更改为具有外键的 ID。这是我的查询:
UPDATE
sale
inner JOIN
employee on sale.salesperson = concat(employee.first_name,' ',employee.last_name)
SET
salesperson_employee_id = employee.employee_id;
但是查询永无止境,它不可能那么疯狂,因为只有大约 10,000 行左右的销售行和 100+ 的员工。让我困扰的是,使用相同的 join 执行 select 几乎会立即运行,那么如果不是 join,为什么这永远不会结束呢?
select
*
from
sale
INNER JOIN
employee on sale.salesperson = concat(employee.first_name,' ',employee.last_name)
此查询以毫秒为单位运行,并返回具有正确联接的所有 12000 行。为什么会这样呀?