【发布时间】:2015-08-30 10:34:06
【问题描述】:
我尝试执行该查询,但由于错误 1241 无法正常工作,我不能在超过 1 列的情况下使用 NOT IN,并且不能在 NOT IN 之前使用两个属性。
SELECT * FROM futbol.puntos WHERE Equipo, Liga
NOT IN
(SELECT der.Equipo,der.Liga,der.Puntos
FROM (SELECT p.Equipo, p .Liga, p.Puntos,
IF(@prev_liga != p.Liga,
@rownum:= 1,
@rownum := @rownum + 1) rank,
@prev_liga:=p.Liga
FROM (SELECT Equipo, Liga, Puntos FROM puntosmitadliga GROUP BY Liga, Puntos, Equipo ORDER BY Liga, Puntos DESC) p,
(SELECT
@rownum:= NULL,
@prev_liga := 0) r) der WHERE der.rank <= 3 ORDER BY der.Liga, der.rank) GROUP BY Liga HAVING max(puntos);
我该如何解决?
【问题讨论】:
-
您的查询没有多大意义。例如,
HAVING max(puntos)简单地过滤掉所有puntos的最大值为零或NULL的行。你应该问另一个问题,提供样本数据和期望的结果,并解释你想要做什么。
标签: mysql database mysql-workbench