我有两个表 tblteacher 和 tblattendance 有共同的 tshortname 字段。现在我想显示 tblteacher 的 tshortname 和状态为“是”,如果对于 tblattendance 中的特定日期我在 tblattendance 中也有 tshortname 否则状态应该是“否”
select distinct(tblteacher.teachername),tblteacher.tshortname,
if(strcmp(tblteacher.tshortname,tblattendance.tshortname) and tblattendance.attdate='2013-07-01','no','yes') as status
from tblteacher,tblclass,tblattendance
这是我执行上述查询时显示的数据
日期-'2013-07-01' 显示的数据对于某些老师来说是正确的。我不知道问题出在哪里。请帮我解决这个问题
更新:
select distinct(tblteacher.tshortname),if (tblteacher.tshortname not in(SELECT
distinct(t.tshortname) from tblteacher t left join tblattendance a on t.tshortname=a.tshortname
where a.attdate='2013-07-03'),'no','yes') as status from tblteacher;
现在我总是根据出勤表中的日期获得 42 行和正确的状态