我有一张包含数据的表,学生记录。我已经在使用带有一些附加数据的表,但记录就像是总数的一半。现在我已经获得了完整的记录,我想将它添加到我现有的表中。我希望INSERT
排除我表中已存在的记录以避免重复,但新表的整个记录将插入到我自己的表中,从而创建重复项。
INSERT INTO `studentTable`(`studentID`, `surname`, `first_name`, `middle_name`,
`department`, `room_number`)
SELECT `studentID`, `surname`, `first_name`, `middle_name`, `department`,
`room_number`
FROM newTable WHERE EXISTS
(SELECT * FROM studentTable WHERE studentTable.studentID <> newTable.studentID);
注意:我可以轻松删除旧记录并插入新记录,但由于现有记录已经使用了一些添加的数据,因此会很痛苦。
任何帮助将不胜感激。深。
答案 0 :(得分:1)
假设studentID
上有一个主键(如果没有,创建一个),只需执行INSERT IGNORE
,mysql将为您进行过滤。
INSERT IGNORE INTO `studentTable`
(`studentID`, `surname`, `first_name`, `middle_name`, `department`, `room_number`)
SELECT
`studentID`, `surname`, `first_name`, `middle_name`, `department`, `room_number`
FROM `newTable`;