如何用单条SQL语句向多对多表sample_tag批量插入500条关联数据?
批量插入多对多关联记录的正确SQL写法
原SQL报错的核心问题是:VALUES子句里嵌套的SELECT返回了多行结果,但VALUES要求每个括号内的子查询只能返回单个值,因此触发错误。
直接用INSERT ... SELECT语法就能解决这个问题,不需要VALUES子句:
INSERT INTO sample_tag (sample_id, tag_id) SELECT sample_id, 1 FROM sample WHERE sample_id <= 500;
这条语句会把sample表中所有sample_id≤500的记录,和固定的tag_id=1组合,批量插入到sample_tag表中,刚好满足插入500条关联记录的需求。
内容的提问来源于stack exchange,提问作者Diamaudix Audio Ltd.
相关产品推荐
相关产品推荐

