亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

mysql nknown column in 'where clause'字段找不到問題

mysql nknown column in 'where clause'字段找不到問題

江戶川亂折騰 2019-05-10 08:57:38
問題描述:將下列語句中10001,更改為task.task_noSELECT`task`.*,(casetask.task_typewhen1then(selectcount(*)from(selectuidfromncd_user_daily_tasks_recordwheretask_no=10001groupbyuid)astemp1)else(selectcount(*)from(selectuidfromncd_user_development_tasks_recordwheretask_no=10001groupbyuid)astemp2)end)asnumber,(casetask.task_typewhen1then(selectcount(*)from(selectuidfromncd_user_daily_tasks_recordwheretask_no=10001)astemp1)else(selectcount(*)from(selectuidfromncd_user_development_tasks_recordwheretask_no=10001)astemp2)end)astotal_numberFROM`op_task``task`則出現mysqlUnknowncolumn'op_task.task_no'in'whereclause'找不到這個task_no字段的錯誤mysql版本為5.6,查出表A,所有數據,當表A的task_type=1時,統計表B中task_no和表A的task_no相同的數量,否則統計表C中task_no和表A的task_no相同的數量,表A為:CREATETABLE`op_task`(idint(10)unsignedNOTNULLAUTO_INCREMENT,task_typetinyint(2)NOTNULLCOMMENT'任務類型。1=每日任務|2=成長任務',task_iconvarchar(250)NOTNULLCOMMENT'任務icon',task_noint(5)unsignedNOTNULLCOMMENT'任務編號',task_namevarchar(100)NOTNULLCOMMENT'任務名稱',task_pointint(11)unsignedNOTNULLDEFAULT'0'COMMENT'獎勵積分',task_receive_timesint(11)DEFAULT'1',task_remarkvarchar(250)DEFAULTNULLCOMMENT'任務備注',task_show_statusint(1)unsignedDEFAULT'1'COMMENT'是否顯示:1-顯示,2-不顯示',task_sortint(11)NOTNULLDEFAULT'0'COMMENT'排序,從大往小排序',task_statustinyint(1)DEFAULT'1'COMMENT'狀態。1=正常|0=禁用',PRIMARYKEY(id),UNIQUEKEYIDX_OP_TASK_TASK_NO(task_no))ENGINE=InnoDBAUTO_INCREMENT=19DEFAULTCHARSET=utf8COMMENT='每日任務表'表B為:CREATETABLE`ncd_user_daily_tasks_record`(idbigint(20)unsignedNOTNULLAUTO_INCREMENT,uidint(11)unsignedNOTNULL,task_noint(5)unsignedNOTNULLCOMMENT'任務編號',finish_timeint(11)unsignedNOTNULLCOMMENT'完成時間',finish_dateint(8)unsignedNOTNULLCOMMENT'完成時間yyyymmdd',PRIMARYKEY(id),KEYIDX_NCD_USER_DAILY_TASKS_RECORD_TASK_NO(task_no),KEYIDX_NCD_USER_DAILY_TASKS_RECORD_FINISH_DATE_TASK_NO(finish_date,task_no)USINGBTREE,KEYIDX_NCD_USER_DAILY_TASKS_RECORD_UID_TASK_NO(uid,task_no)USINGBTREE)ENGINE=InnoDBAUTO_INCREMENT=139DEFAULTCHARSET=utf8COMMENT='每日任務完成記錄'表C為:CREATETABLE`ncd_user_development_tasks_record`(idbigint(20)unsignedNOTNULLAUTO_INCREMENT,uidint(11)unsignedNOTNULL,task_noint(5)unsignedNOTNULLCOMMENT'任務編號',finish_timeint(11)unsignedNOTNULLCOMMENT'完成時間',finish_dateint(8)unsignedNOTNULLCOMMENT'完成時間yyyymmdd',PRIMARYKEY(id),KEYIDX_NCD_USER_DEV_TASKS_TASK_NO(task_no),KEYIDX_NCD_USER_DEV_TASKS_UID_TASK_NO(uid,task_no)USINGBTREE,KEYIDX_NCD_USER_DEV_TASKS_FINISH_DATE_TASK_NO(finish_date,task_no)USINGBTREE)ENGINE=InnoDBAUTO_INCREMENT=20DEFAULTCHARSET=utf8COMMENT='成長任務完成記錄'
查看完整描述

2 回答

?
精慕HU

TA貢獻1845條經驗 獲得超8個贊

在子查詢里面是獲取不到父查詢列信息的,所以報錯,按照你的需求,可以用變量來實現這個功能
--定義變量
SET@task_task_no=0;
SELECT
--變量賦值
@task_task_no:=task_no,
`task`.*,(
CASEtask.task_type
WHEN1THEN
(
SELECT
count(*)
FROM
(
SELECT
uid
FROM
ncd_user_daily_tasks_record
WHERE
task_no=@task_task_no
GROUPBY
uid
)AStemp1
)
ELSE
(
SELECT
count(*)
FROM
(
SELECT
uid
FROM
ncd_user_development_tasks_record
WHERE
task_no=@task_task_no
GROUPBY
uid
)AStemp2
)
END
)ASnumber,
(
CASEtask.task_type
WHEN1THEN
(
SELECT
count(*)
FROM
(
SELECT
uid
FROM
ncd_user_daily_tasks_record
WHERE
task_no=@task_task_no
)AStemp1
)
ELSE
(
SELECT
count(*)
FROM
(
SELECT
uid
FROM
ncd_user_development_tasks_record
WHERE
task_no=@task_task_no
)AStemp2
)
END
)AStotal_number
FROM
`op_task``task`;
                            
查看完整回答
反對 回復 2019-05-10
?
慕田峪9158850

TA貢獻1794條經驗 獲得超8個贊

看了你的SQL,感覺把兩種task_type分開來處理更合理點,將CASEWHEN改成UNION(僅供參考):
SELECTtask.*,number.total,number.uid_totalFROM
(
SELECT*FROMop_taskWHEREtask_type=1
)task,
(
SELECTtask_no,COUNT(*)total,COUNT(DISTINCTuid)uid_total
FROMncd_user_daily_tasks_recordGROUPBYtask_no
)number
WHEREtask.task_no=number.task_no
UNION
SELECTtask.*,number.total,number.uid_totalFROM
(
SELECT*FROMop_taskWHEREtask_type=2
)task,
(
SELECTtask_no,COUNT(*)total,COUNT(DISTINCTuid)uid_total
FROMncd_user_development_tasks_recordGROUPBYtask_no
)number
WHEREtask.task_no=number.task_no
                            
查看完整回答
反對 回復 2019-05-10
  • 2 回答
  • 0 關注
  • 482 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號