mysql - 多个子查询,一个返回多于1行

标签 mysql sql

 SELECT NOMBRE_E 'EMPLEADO'
 FROM EMPLEADOS
 WHERE IDEMPLEADO = (
     SELECT IDEMPLEADO FROM ENVIOS WHERE IDPRODUCTO = (
         SELECT B.IDPRODUCTO
         FROM ENVIOS B
         GROUP BY B.IDPRODUCTO
         ORDER BY COUNT(*) DESC
         LIMIT 1
     )
 )

ERROR: Subquery returns more than 1 row

如何解决?

最佳答案

一个快速修复方法是添加另一个 Limit 1。但如果没有更多信息,很难说它是否正确。

SELECT NOMBRE_E 'EMPLEADO'
 FROM EMPLEADOS
 WHERE IDEMPLEADO = (
     SELECT IDEMPLEADO FROM ENVIOS WHERE IDPRODUCTO = (
         SELECT B.IDPRODUCTO
         FROM ENVIOS B
         GROUP BY B.IDPRODUCTO
         ORDER BY COUNT(*) DESC
         LIMIT 1
     )
     LIMIT 1
 )

关于mysql - 多个子查询,一个返回多于1行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39882411/

相关文章:

mysql - 在 MySQL 上只填充一列

mysql - 更改 mySQL 数据库中特定行的时间字段

c# - 当 ExecuteScalar 工作正常时,为什么 ExecuteReader 会崩溃读取某些记录的特定数据字段?

sql - 查询、 native 查询、命名查询和类型化查询之间的区别

mysql - Spring、thymeleaf、JPA/hibernate、mysql UTF-8 字符保留在数据库中

javascript - 如何调试不报错、不进入回调的代码?

php - 使用 sql 运行本地服务器的远程 tar.gz

sql - SQL 中的双 IN 语句

sql - 如何在MySQL中保存唯一的字母数字内容?

sql - postgresql group by 和 inner join