相关文章推荐
神勇威武的烤面包  ·  How to resolve "git ...·  3 年前    · 

大家是不是也经常碰到单行子查询返回多个行的错误提示。我已经碰到数次这种错误了,这种错误是基于数据存在的,开发人员也许在最初写这个查询语句的时候没有合适的数据,所以没有发现错误,当满足条件的数据出现后才会给出这种错误提示,特别是非常复杂的查询语句,排查原因变得非常困难。

我列举两条简单的查询语句供读者学习。

1. select * from emp where job =( select job from emp a where a.job = emp.job)

2. select ( select ename from emp a where a.job = emp.job) from emp

第一条 查询语句, where条件里面的等于明显是单行比较符,当等于后面的子查询返回多行时,就会出现单行子查询返回多个行的错误提示。

第二条查询语句,子查询的结果是作为父查询的一个列,所以也要求返回单行,当子查询出现多条返回记录时,同样会出现单行子查询返回多个行的错误提示。