在子查询里面是获取不到父查询列信息的, 所以报错, 按照你的需求,可以用变量来实现这个功能
-- 定义变量
SET @task_task_no=0;
SELECT
-- 变量赋值
@task_task_no := task_no,
`task`.*, (
CASE task.task_type
WHEN 1 THEN
(
SELECT
count(*)
FROM
(
SELECT
uid
FROM
ncd_user_daily_tasks_record
WHERE
task_no = @task_task_no
GROUP BY
uid
) AS temp1
)
ELSE
(
SELECT
count(*)
FROM
(
SELECT
uid
FROM
ncd_user_development_tasks_record
WHERE
task_no = @task_task_no
GROUP BY
uid
) AS temp2
)
END
) AS number,
(
CASE task.task_type
WHEN 1 THEN
(
SELECT
count(*)
FROM
(
SELECT
uid
FROM
ncd_user_daily_tasks_record
WHERE
task_no = @task_task_no
) AS temp1
)
ELSE
(
SELECT
count(*)
FROM
(
SELECT
uid
FROM
ncd_user_development_tasks_record
WHERE
task_no = @task_task_no
) AS temp2
)
END
) AS total_number
FROM
`op_task` `task`;