mysql - 为什么 MySQL 命令行客户端拒绝我的语句,而 Workbench 对此没有问题?

标签 mysql sql select command-line-interface

我有一个需要日志输出的 SQL 查询列表,因此我使用 MySQL 命令行客户端。除了下面的查询会引发语法错误之外,所有这些都会产生正确的输出。查询的目的是获取订购产品总量最大的客户的CustID。我正在使用子查询,但也许这是错误的:

SELECT CUSTNUM FROM(
  SELECT CUSTNUM, MAX(TOTALQTY) FROM(
    SELECT CUSTNUM, SUM(QTY) AS TOTALQTY
    FROM ORDERS GROUP BY CUSTNUM ORDER BY TOTALQTY DESC
    ) ORDERS
  ) ORDERS;

...我收到此错误:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual
that corresponds to your MySQL server version for the right syntax to use 
near 'ORDERS GROUP BY CUSTNUM ORDER BY TOTALQTY DESC) ORDERS    ) ORDERS' at 
line 1

我不明白为什么这个查询在工作台中工作正常,但在命令行中却不行。

最佳答案

好吧,看来当我从 Workbench 复制并粘贴语句时,它在过程中丢失了关键字之间的一些空格。粘贴的查询在命令行中显示如下:

SELECT CUSTNUM FROM(SELECT CUSTNUM, MAX(TOTALQTY) FROM(SELECT CUSTNUM, 
SUM(QTY) AS TOTALQTYFROM ORDERS GROUP BY CUSTNUM ORDER BY TOTALQTY DESC) 
ORDERS    ) ORDERS    ;

注意“TOTALQTYFROM”,错误。

吸取的教训...不要盲目地复制和粘贴,或者至少检查一下我粘贴的内容!

我将离开这篇文章,以防其他人遇到类似的问题。

关于mysql - 为什么 MySQL 命令行客户端拒绝我的语句,而 Workbench 对此没有问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41637653/

相关文章:

sql - 如何在 SQL 数据库中创建记录之间的关系?

sql - 按上次发帖日期对论坛进行排序

MySQL根据一个表中的最新值从多个表中选择值

php - 如果title_es为空,MYsql想要获取title_en

mysql - 关于MySql ID列的建议 - Rails

MySQL:自引用不为空,auto_increment,外键?

mysql - SQL比较列中的整数,输出错误

java - 字符串到日期转换的问题

sql - rails 3 : Can't create relationship :has_one

javascript - 当 onfocus 设置选择大小时,Google Chrome 会崩溃