题解 | #插入记录(二)#

插入记录(二)

https://www.nowcoder.com/practice/9681abf28745468c8adacb3b029a18ce

# 解法1.
insert into exam_record_before_2021
select null,uid,exam_id,start_time,submit_time,score from exam_record as t1
where year(t1.submit_time)<2021

解法2.
# INSERT INTO
#   exam_record_before_2021 (uid, exam_id, start_time, submit_time, score)
# SELECT
#   uid,
#   exam_id,
#   start_time,
#   submit_time,
#   score
# FROM
#   exam_record
# WHERE
#   YEAR(submit_time) < 2021;

这里用到了从一张表中查询数据insert到另一张表的知识:

insert into table1 select * from table2

在运行成功的结果中提到了两个解法,一个是在要插入数据的表中指定列,这是因为表2中有些列和表1不符,该题表1和表2的主键id是自增的,但是从表2筛选数据到表1,id这列就要重新传入值,不能用表2的值。

  • 主键自增的情况下可以不传入值,也可以传入null值。
全部评论

相关推荐

2024-12-30 22:31
吉首大学 Web前端
工字钢写代码:改成吉林就OK了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务