mysql:获取case函数中ID匹配的行值

mysql:获取case函数中ID匹配的行值,mysql,Mysql,我试图从t5表中获取值,如下所示,其中t4.slot匹配t5.Id用例,但我总是从第一行获取值,当t4.slot Id='2'时,它将从t5第二行值获取值 表格:t1数据来自此表格 预期输出: table:t5我试图在根据ID使用between函数的情况下使用此表字段作为标准 选择t1.TraineeID, t3.BatchID, t4.插槽, t2.attnDate, 分钟(t1.时刻)与时间相同, 最大值(t1时间)为超时, (当t5.ID='1'和t1.ATTTIME时,请给出示例输

我试图从
t5
表中获取值,如下所示,其中
t4.slot
匹配
t5.Id
用例,但我总是从第一行获取值,当
t4.slot Id='2'
时,它将从
t5
第二行值获取值

表格:t1数据来自此表格

预期输出:

table:t5我试图在根据ID使用between函数的情况下使用此表字段作为标准

选择t1.TraineeID,
t3.BatchID,
t4.插槽,
t2.attnDate,
分钟(t1.时刻)与时间相同,
最大值(t1时间)为超时,

(当t5.ID='1'和t1.ATTTIME时,请给出示例输入、预期输出,并更具体地解释您想要实现的目标。“预期输出:”实际上是“t4”?还有,奇怪的是,为什么实习生id是字符串?另外,通常日期和时间存储为单个实体否,预期输出来自t1和t3,t4,t5与此连接,这里的实习生id不是问题实际上,我只需要t5.id以防返回minTime,maxTime,其中与t4.Slot匹配
select t1.TraineeID, 
       t3.BatchID,
       t4.Slot,
       t2.attnDate,
       min(t1.attnTime) as in_time, 
       max(t1.attnTime) as out_time,
       (CASE WHEN t5.ID='1' and t1.attnTime<t5.inTime THEN 'P' 
             WHEN t5.ID='2' and t1.attnTime<t5.inTime THEN 'P'
        ELSE 'Late-In' END) AS Status
from tbl_attn_temp t1, tbl_assigned t3
join (select distinct attnDate from tbl_attn_temp)t2
left outer join tbl_batch t4 on t3.BatchID=t4.BatchID
left outer join tbl_threshold t5 on t4.Slot=t5.ID
where t1.attndate = t2.attnDate and t1.TraineeID=t3.TraineeID 
and t4.Slot=(CASE 
     WHEN t5.ID='1' THEN t1.attnTime BETWEEN t5.minLimit AND t5.maxLitmit
     WHEN t5.ID='2' THEN t1.attnTime BETWEEN t5.minLimit AND t5.maxLitmit
     END)
group by t1.TraineeID, t2.attnDate