Subquery returns more than 1 row

eg:
SELECT taxpayer_flag,org_num
from b org
where org.taxpayer_flag != (
SELECT taxpayer_flag
from a info
where org.org_num = info.org_num
);
在a表中存在冗余数据,就是在where条件的对应关系中存在一对多的关系,
解决方式:
1.可以使用 limit 或者从业务插入中去除1对多的数据影响
2.在where子查询中对应关系中的数据换成数据1对1 的
3.优化子查询sql使得查询出来的结果只有1条,符合逻辑
eg:
SELECT taxpayer_flag,org_num
from s org
where org.taxpayer_flag != (
SELECT taxpayer_flag
from b info
where org.org_num = info.org_num
ORDER BY id desc
limit 1 );
本文来自博客园,作者:diligently,转载请注明原文链接:https://www.cnblogs.com/luo12828-foxmail/p/16964005.html

浙公网安备 33010602011771号