在此查询之后,我收到了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);
答案 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);