MySQL:'Subquery returns more than 1 row' during insert

t8e9dugd  于 2023-03-22  发布在  Mysql
关注(0)|答案(1)|浏览(139)

基于我上面的问题,下面是我的查询:
INSERT INTO wla_crf_extend(bl_id,sap_crf_id)VALUES(4747,(SELECT id AS sap_crf_id FROM wla_sap_crf WHERE so_num = 2147480943))
我运行这个查询的时候,会得到这个错误,子查询返回超过1行
SELECT id AS sap_crf_id FROM wla_sap_crf WHERE so_num = 2147480943中的查询实际上将返回多个行。
有谁知道问题出在哪里?如何解决?

p8h8hvxi

p8h8hvxi1#

如果您的嵌套查询(SELECT id AS sap_crf_id FROM wla_sap_crf WHERE so_num = 2147480943)返回多行,则意味着“so_num”字段未定义为“唯一”,表“wla_sap_crf”中的多个条目可以具有相同的“so_num”值。
您可以将'so_num'字段定义为UNIQUE,也可以使用另一个UNIQUE字段,它将实际返回您想要的精确行。
如果您在查询时不知道标识符,您也可以在查询中使用其他字段的组合来产生相同的效果。IE:“SELECT id FROM students WHERE name='Bob' AND last_name='Ross' AND class=1”.

相关问题