mysql - #2014 - 命令不同步;你现在不能运行这个命令 SQL 子查询

标签 mysql sql subquery syntax-error

我看过类似的问题,看到几个类似的问题答案不明确,所以我想在这里问。

'''
USE country_club;


SELECT fac.name,
       concat(mem.firstname, ' ', mem.surname) AS fullname,
       starttime =
  (SELECT starttime
   FROM Bookings
   WHERE starttime LIKE '2012-09-14%'),
       (slots * 30) AS mincost,
       CASE
           WHEN boo.memid=0 THEN boo.slots*fac.guestcost
           ELSE boo.slots*fac.membercost
       END AS cost
FROM Bookings AS boo
LEFT JOIN Members AS mem ON boo.memid = mem.memid
LEFT JOIN Facilities AS fac ON boo.facid = fac.facid
HAVING cost > 30;
'''

错误出现在我添加第二个 SELECT 语句后,我知道这不是最好的查询方式,但这是我作业的要求。

最佳答案

我相信造成您麻烦的 SQL 子句就是这个。 (如果这不是真的,请编辑您的问题以澄清它。)

 WHERE ...
 starttime =
  (SELECT starttime
    FROM Bookings
    WHERE starttime LIKE '2012-09-14%'),

这是一个奇怪的操作。看起来您想要特定日期的所有 starttime 值。那么,为什么不直接在您的查询中这么说呢?你需要的是这样的东西。

 WHERE ...
        starttime  >= '2012-09-14 00:00:00'
   AND  starttime < '2012-09-14 00:00:00' + INTERVAL 1 DAY

我相信您遇到了奇怪的诊断“命令不同步”错误,因为您的查询说

   SELECT WHERE .... value = (whole mess of values)

你的 MySQL 服务器追着它的尾部试图理解你并最终放弃而不是直接拒绝它作为语法错误。

关于mysql - #2014 - 命令不同步;你现在不能运行这个命令 SQL 子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58259189/

相关文章:

Mysql 查询比赛获胜者(包括抽奖条目)

mysql - 如何在 ruby​​ on Rails 中将数据库(转储文件)从 mysql 数据库导出到 sqlite

mysql - PDO:如何从 MySQL 获取图像地址并打印它?

mysql - 如何获取我们在 mysqldb 中使用的所有查询

c# - 如何使用 Entity Framework 和存储过程来避免 TimeOut 异常?

sql - 根据另一个表中的值更新 2 列

ios - NSPredicate 获取给定值下属性的最大值

python - 带有 WHERE 子句的 JOIN 的 Pandas 模拟

sql - MySQL 子查询返回不正确的结果?

mysql - 使用子查询的查询需要比使用固定数据而不是子查询的相同查询更长的时间