【发布时间】:2018-04-05 07:41:59
【问题描述】:
SELECT *,
`batch`.`batch_id` as `batchId`,
`batch`.`center_id` as `centerId`,
`batch`.`scheme_id` as `schemeId`,
`batch`.`batch_start_date` as `BatchStartDate`,
(SELECT COUNT(`attendance_count`) AS `eligible_for_assessment` FROM
(SELECT COUNT(`mark_attendance`) AS `attendance_count` FROM `dailyattendance`
WHERE `mark_attendance`="p" AND `scheme_id`=`schemeId` AND `batch_id`=`batchId`
AND `center_id`=`centerId` GROUP BY `candidate_id`) AS `sfkjsd`
WHERE `attendance_count` > 6
)
from `batch`
在这个子查询中它返回错误,“'where 子句'中的未知列'schemeId'”。在 mysql 子查询中访问第三级子查询中的父参数?
(SELECT COUNT(`attendance_count`) AS `eligible_for_assessment` FROM
(SELECT COUNT(`mark_attendance`) AS `attendance_count` FROM `dailyattendance`
WHERE `mark_attendance`="p" AND `scheme_id`=1 AND `batch_id`=2
AND `center_id`=3 GROUP BY `candidate_id`) AS `sfkjsd`
WHERE `attendance_count` > 6
)
此查询返回一个月内出现超过 6 天的候选人总数。我需要从父选择查询中动态传递这个“schemeId”。
(SELECT COUNT(*) from `enrolment` WHERE
`enrolment`.`batch_id`=`batchId` AND `enrolment`.`center_id`=`centerId`
AND `enrolment`.`ew_enrolled_for_scheme`=`schemeId`) as `enrolled_student_count`
在这个查询中,我使用父选择器schemeId 和其他,它让我计算结果。但是如果我在上面的子查询中的FROM (SELECT....) 中放置另一个子查询,我会提到它会给我错误。
【问题讨论】:
-
你在这里犯了一个错误
scheme_id=schemeId和batch_id=batchId在右手边它不应该是schemeId。它应该是您要比较的实际值。 -
我想将 schemeId 从 thi 选择器
batch.scheme_id as schemeId传递给子查询。 -
查看下面的答案