0

假设我有一张名为“学生”的表格,其中包含姓名、手机、电子邮件、首选课程、首选学校、性别、年龄、地址、资格、职务、家庭电话、工作电话

我想从学生表中选择数据并插入到 2 个表中,例如,查询 =>(带列)ID、姓名、手机、电子邮件注册 =>(带列)ID、inquiry_id、姓名、手机、电子邮件、首选课程、首选学校、性别、年龄、地址、资格、名称、家庭电话、工作电话

如何使用查询表中的正确 id 值填充注册表中的inquiry_id?

4

1 回答 1

1

使用LAST_INSERT_ID()获取最后插入查询的 id;

INSERT INTO inquiries (name, mobile, ...

INSERT INTO enrollments (inquiry_id, name, ...) 
   VALUES (LAST_INSERT_ID(), 'myname', ...

一个用于测试的简单 SQLfiddle

批量移动的另一种方法是添加一个临时列来保存旧 id,以便您可以将正确的列用于第二次插入;

ALTER TABLE inquiries ADD COLUMN oldid INT;

INSERT INTO inquiries (..., oldid) SELECT ..., id FROM students;
INSERT INTO enrollments (inquiry_id, ...)
  SELECT (SELECT id FROM inquiries WHERE students.id=oldid), ...
  FROM students;

ALTER TABLE inquiries DROP COLUMN oldid;

另一个 SQLfiddle

于 2013-07-28T20:03:25.530 回答