0
我想根据日志表中的状态字符串显示状态是或否。根据MYSQL中的条件显示状态
SQL查询
SELECT Data.user_id,
CASE WHEN log.user_id = Data.user_id and log.status like 'checked%' THEN 'YES'
ELSE 'NO' END AS Status1 ,
CASE WHEN log.user_id = Data.user_id and log.status like 'UNCHECKED%' THEN 'YES'
ELSE 'NO' END AS Status2
from Data
LEFT JOIN log
on log.user_id = Data.user_id and log.log_id = '23'
GROUP BY Data.user_id;
数据表:
user_id
23
24
25
日志表:
user_id status log_id
23 checked_REC 23
23 UNCHECKED_REC 23
25 checked_REC 23
26 clicked_REC 12
27 valid_REC 13
28 sesionout_REC 14
我需要显示为
user_id Status1 Status2
23 YES YES
24 NO NO
25 YES NO
但现在我越来越
user_id Status1 Status2
23 YES NO
24 NO NO
25 YES NO
我该怎么做,以获得所需的状态?
远预期的输出,你不需要将它添加到的情况。并且,您正在按ID分组两个具有不同Status2,2值的行。我不知道它是否重要,但在'UNCHECKED%'后面有一个空格 – McNets
只是为了再次强调mcNets正确表示:您必须删除'UNCHECKED%'中的空格。 – Solarflare
@Solarflare删除空格后产生上面显示的错误结果 – dafodil