让我们说我有一张名为学生的表,名称,手机,电子邮件,首选课程,首选学校,性别,年龄,地址,资格,名称,家庭电话,工作电话
我想从Students表中选择数据并插入2个表,例如: 查询=> (带列)Id,Name,Mobile,Email 注册=> (有栏目)Id,inquiry_id,姓名,手机,电子邮件,首选课程,首选学校,性别,年龄,地址,资格,名称,家庭电话,工作电话
如何使用查询表中的正确ID值填充注册表中的inquiry_id?
答案 0 :(得分:1)
使用LAST_INSERT_ID()获取上次插入的查询的ID;
INSERT INTO inquiries (name, mobile, ...
INSERT INTO enrollments (inquiry_id, name, ...)
VALUES (LAST_INSERT_ID(), 'myname', ...
A simple SQLfiddle for testing
批量移动的另一种方法是添加一个临时列来保存旧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;