把oldId(旧课程id)里面的多条学生数据复制到newId (新课程id)里面
INSERT INTO source_group (
NAME,student_Id,COURSE_ID,STUDENT_NAME,STATUS,teacher_Id,
)
SELECT
NAME,student_Id,pt2,STUDENT_NAME,CASE WHEN STATUS = '10F' THEN '10S' ELSE STATUS END STATUS
FROM source_group
INNER JOIN (
SELECT oldId pt1, newId pt2
) a2 ON course_id = pt1 ORDER BY id
当不止复制一个课程时 可以采用union all的方式复制
INSERT INTO source_group (
NAME,student_Id,COURSE_ID,STUDENT_NAME,STATUS,teacher_Id,
)
SELECT
NAME,student_Id,pt2,STUDENT_NAME,STATUS
FROM source_group
INNER JOIN (
SELECT oldId pt1, newId pt2
union all
SELECT oldId1 pt1, newId2 pt2
) a2 ON course_id = pt1 ORDER BY id
//mybatis文件
<insert id="copySourceGroup" parameterType="com.vo.CopyDto">
INSERT INTO source_group (
NAME,student_Id,COURSE_ID,STUDENT_NAME,STATUS,teacher_Id,
)
SELECT
NAME,student_Id,pt2,STUDENT_NAME,CASE WHEN STATUS = '10F' THEN '10S' ELSE STATUS END STATUS
FROM source_group
<foreach collection="list" item="copyItem" separator=" UNION ALL ">
SELECT #{copyItem.oldId} pt1, #{copyItem.newId} pt2
</foreach>
) a2 ON course_id = pt1 ORDER BY id
</insert>