Py学习  »  DATABASE

mysql 1064错误解决语法错误的方法是什么?

Omar • 5 年前 • 1568 次点击  

我需要一些帮助,因为我是一个mysql的初学者,我试过查看其他文章,发现这个错误毫无用处。

您的SQL语法有错误;请查看对应于MySQL服务器版本的手册,在第7行的“select max(count)from(select activity,count(*)from friends group by activity”附近使用正确的语法

为什么会生成此错误,如何修复此错误?

SELECT activity
FROM (SELECT activity, count(*) FROM FRIENDS GROUP BY activity) AS getActivities
WHERE count NOT IN (
    SELECT min(count)
        FROM (SELECT activity, count(*) FROM FRIENDS GROUP BY activity ) AS maximum,
    SELECT max(count)
        FROM (SELECT activity, count(*) FROM FRIENDS GROUP BY activity) AS minimum
)
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/44892
 
1568 次点击  
文章 [ 3 ]  |  最新文章 5 年前
JuSun Lee
Reply   •   1 楼
JuSun Lee    5 年前

如何修复。

select activity from ( Select activity, count(*) as count from FRIENDS group by activity) as getActivities
     where count not in  
 (
   Select min(count) as count from (Select activity, count(*) from FRIENDS group by activity ) as maximum
   union all
   SELECT max(count) as count from (Select activity, count(*) from FRIENDS group by activity) as minimum
 )
Au Nguyen
Reply   •   2 楼
Au Nguyen    5 年前

SQL字符串中有错误:

  • 不是别名计数(*)列

  • 在条件不在的情况下没有组2表

尝试此查询:

SELECT activity 
FROM ( SELECT activity, COUNT(*) AS Number FROM FRIENDS GROUP BY activity) AS getActivities
WHERE Number NOT IN (SELECT MIN(Number) FROM (SELECT activity, COUNT(*) AS Number FROM FRIENDS GROUP BY activity )  AS maximum)
AND Number NOT IN (SELECT MAX(Number) FROM (SELECT activity, COUNT(*) AS Number FROM FRIENDS GROUP BY activity) AS minimum)
Gordon Linoff
Reply   •   3 楼
Gordon Linoff    5 年前

这是您的问题:

select activity
from (Select activity, count(*)
      from FRIENDS
      group by activity
     ) as getActivities
where count not in (Select min(count) from (Select activity, count(*) from FRIENDS group by activity ) as maximum,
                    SELECT max(count) from (Select activity, count(*) from FRIENDS group by activity) as minimum
                   );

您有多个错误。例如:

  • count(*) 没有列别名。但它需要一个名称,因为它在子查询中。
  • 子查询没有表别名。
  • 外部的子查询 where 有括号。
  • 这个 , 意味着您打算将子查询作为标量子查询,但它们可以返回多行。

我想你打算:

select f.activity
from friends f
group by f.activity
having count(*) > (select count(*)
                   from friends f2
                   group by f2.activity
                   order by count(*) asc
                   limit 1
                  ) and
       count(*) < (select count(*)
                   from friends f2
                   group by f2.activity
                   order by count(*) desc
                   limit 1
                  );