Mysql 为什么我会从这个子查询脚本中得到一个错误?

Mysql 为什么我会从这个子查询脚本中得到一个错误?,mysql,sql,Mysql,Sql,我在子查询和从其他表左连接方面遇到问题 代码: SELECT effectiveDate, (SELECT CASE WHEN note='REGULAR LOGGED' THEN log END FROM schedules LEFT JOIN timesheet ON schedules.effectiveDate = timesheet.date WHERE schedules.empid='40' AND YEAR(e

我在子查询和从其他表左连接方面遇到问题

代码:

SELECT effectiveDate,

    (SELECT

      CASE
        WHEN note='REGULAR LOGGED' THEN log
      END

    FROM schedules LEFT JOIN timesheet ON schedules.effectiveDate = timesheet.date WHERE schedules.empid='40'
    AND YEAR(effectiveDate) = YEAR(CURDATE()) AND MONTH(effectiveDate) ='1' GROUP BY effectiveDate

    )

    FROM schedules
    LEFT JOIN timesheet ON schedules.effectiveDate = timesheet.date WHERE schedules.empid='40'
    AND YEAR(effectiveDate) = YEAR(CURDATE()) AND MONTH(effectiveDate) ='1' GROUP BY effectiveDate

这就是您的实际查询

 SELECT effectiveDate,
 CASE
        WHEN note='REGULAR LOGGED' THEN log
      END
     FROM schedules LEFT JOIN timesheet ON schedules.effectiveDate = timesheet.date WHERE schedules.empid='40'
    AND YEAR(effectiveDate) = YEAR(CURDATE()) AND MONTH(effectiveDate) ='1' GROUP BY effectiveDate.

不确定为什么要使用子查询

您的查询会出现错误1242,即返回的行数超过1行。错误消息无法变得更清楚。它特别告诉您,子查询返回的行不止一行。如何修复它?确保您的子查询只返回1行。您还标记了MySQL,但您的查询看起来像SQL Server。请正确标记。我认为询问者正在复制我使用的子查询的可能副本,用于选择每个类别,类别1,类别2,类别..案例当note='REGULAR LOGGED'时,日志结束从计划左侧加入时间表上的时间表。effectiveDate=timesheet.date其中schedules.empid='40'和YEAReffectiveDate=YEARCURDATE和MONTHeffectiveDate='1'按effectiveDate分组类别1的此条件。那么现在如何为另一个类别再次选择?你所说的类别是什么意思?我没有看到在你的查询中使用的任何名为“类别”的列。我的意思是,我想选择不同的条件。案例:当note='REGULAR LOGGED'然后从日程表左侧记录结束时加入日程表上的时间表。effectiveDate=timesheet.date WHERE schedules.empid='40'和YEAReffectiveDate=YEARCURDATE和MONTHeffectiveDate='1'以及counter=1-对于类别1,我想在note='REGULAR LOGGED'之后从日程表左侧记录结束时选择新的类别案例在schedules.effectiveDate=timesheet.date WHERE schedules.empid='40'和YEAReffectiveDate=YEARCURDATE和MONTHeffectiveDate='1'和counter=2上加入时间表。实际上,你的问题很简单。但我不明白你的要求。你能运行我在答案中发布的上述查询并向我显示结果吗?附上一个问题的屏幕截图运行查询后的结果。