2

我有两张桌子:employeeemployee_group。插入第一个表后,我将从该表中获取最后插入的 id。接下来我需要插入表格employee_group。SQL:

INSERT INTO employee_group (employee_id, group_id) 
  SELECT {$currentEmpId}, group_id 
  FROM employee_group 
  WHERE employee_id = {$anyId}

MySQL 已返回 TRUE。但是没有插入记录。

我注意到如果尝试为以前插入的员工插入记录,那么查询将成功。例子:

  1. 插入员工,将$currentEmpId作为最后插入的 id返回
  2. INSERT INTO employee_group (employee_id, group_id) SELECT {$currentEmpId - 1}, group_id FROM employee_group WHERE employee_id = {$anyEmpId}

或者,如果我尝试同时插入当前员工和上一个员工的记录,那么第一次查询将不成功,但第二次查询正常。

数据库没有触发器、外键或函数。没什么,只是数据。

我陷入了僵局。

UPD:如果我将记录保存到 php 变量然后 foreach 它并将每条记录作为一个项目插入,就像INSERT INTO employee_group (employee_id, group_id) VALUES (xxx, yyy)我也会遇到这个问题一样。

4

2 回答 2

2
INSERT INTO employee_group (employee_id, group_id) 
  VALUES({$toEmpId},{SELECT group_id FROM employee_group WHERE employee_id = {$fromEmpId}})

一探究竟 ..

于 2012-07-12T10:34:31.100 回答
-2

尝试这个

INSERT INTO employee_group (employee_id, group_id) 
  VALUES({$toEmpId},{SELECT {$toEmpId}, group_id FROM employee_group WHERE employee_id = {$fromEmpId}})
于 2012-07-12T10:19:57.443 回答