MySQL ERROR 1111

时间:2014-02-27 05:05:42

标签: mysql

在此查询之后,我收到了ERROR 1111

SELECT estilista.estilo 
FROM   (SELECT distrito.n_distrito, 
               Count(*) AS cantidad 
        FROM   distrito, 
               establece_orden, 
               seguridad 
        WHERE  seguridad.id_cuerpo = establece_orden.cod_seguridad 
               AND distrito.n_distrito = establece_orden.n_distrito 
        GROUP  BY distrito.n_distrito) AS libres, 
       distrito, 
       estilista, 
       tributo 
WHERE  libres.n_distrito = tributo.n_distrito 
       AND tributo.cod_tributo = estilista.cod 
       AND libres.cantidad = ALL (SELECT Min(Count(*)) AS minimo 
                                  FROM   distrito, 
                                         establece_orden, 
                                         seguridad 
                                  WHERE  seguridad.id_cuerpo = 
                                         establece_orden.cod_seguridad 
                                         AND distrito.n_distrito = 
                                             establece_orden.n_distrito 
                                  GROUP  BY distrito.n_distrito); 

1 个答案:

答案 0 :(得分:0)

使用= ALL是没有意义的:单个libres.cantidad如何同时等于一个Min(Count(*))? ALL只能与可以匹配多个值的比较运算符一起使用,例如> =或<>:请参阅Subqueries with ALL

试试这个

  SELECT estilista.estilo 
   FROM   (SELECT distrito.n_distrito, 
           Count(*) AS cantidad 
    FROM   distrito, 
           establece_orden, 
           seguridad 
    WHERE  seguridad.id_cuerpo = establece_orden.cod_seguridad 
           AND distrito.n_distrito = establece_orden.n_distrito 
    GROUP  BY distrito.n_distrito) AS libres, 
   distrito, 
   estilista, 
   tributo 
  WHERE  libres.n_distrito = tributo.n_distrito 
   AND tributo.cod_tributo = estilista.cod 
   AND libres.cantidad in (SELECT Count(*) AS minimo 
                              FROM   distrito, 
                                     establece_orden, 
                                     seguridad 
                              WHERE  seguridad.id_cuerpo = 
                                     establece_orden.cod_seguridad 
                                     AND distrito.n_distrito = 
                                         establece_orden.n_distrito 
                              GROUP  BY distrito.n_distrito
                              ORDER BY minimo ASC LIMIT 1);