2

私は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}

または、現在の従業員と前の従業員のレコードを同時に挿入しようとすると、最初のクエリは失敗しますが、2番目のクエリは問題ありません。

データベースには、トリガー、外部キー、または関数はありません。何も、ただのデータ。

私は行き詰まっています。

UPD:レコードをphp変数に取得し、それをforeachして、各レコードを1つのアイテムとして挿入する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 に答える