我正在使用MySQL。下面是我的SQL语句。 try {
if(getIntent().getExtras().containsKey("your_parameter")) {
btn.setVisibility(View.VISIBLE);
}
} catch(Exception e){
//...
}
是我的交易表。这工作正常。但是当timetabledistribution
表中有NULL
的记录时,这会返回teacherId = NULL
条记录。
我相信这是因为SQL语句中有timetabledistribution
。
如果这些记录的teacherId = NULL,是否有可能避免或忽略此JOIN?或者任何其他更好的方式......
INNER JOIN teacher_profiles c ON a.teacherId = c.teacherId
我希望其他字段应该返回除了教师详细信息,因为该特定记录的teacherId为NULL。 但是查询忽略了整个记录。
SELECT
CONCAT(a.periodWeekDayId, '.', a.periodId) as Id,
a.periodId,
a.periodWeekDayId,
a.subjectId,
b.subjectShortName,
a.teacherId,
CONCAT(c.teacherFirstName , ' ', COALESCE(c.teacherMiddleName, ''), ' ', c.teacherLastName ) as teacherName ,
e.classStd,
f.sectionName,
g.templateName,
h.periodLabel,
h.periodStartTime,
h.periodEndTime,
i.periodWeekDayName,
a.timeTableClassSectionId
FROM timetabledistribution a
INNER JOIN subject_master b ON a.subjectId = b.subjectId
INNER JOIN teacher_profiles c ON a.teacherId = c.teacherId
INNER JOIN TimeTableClassSection d ON a.TimeTableClassSectionId = d.TimeTableClassSectionId
INNER JOIN class_master e ON d.classId = e.classId
INNER JOIN section_master f ON d.sectionId = f.sectionId
INNER JOIN TimeTableTemplate g ON d.timeTableTemplateId = g.timeTableTemplateId
INNER JOIN templatePeriodStructure h ON a.periodId = h.periodId
INNER JOIN templateWeekDaysStructure i ON a.periodWeekDayId = i.periodWeekDayId
WHERE A.TimeTableClassSectionId='46'
但是获得
Id periodId periodWeekDayId …..
1 12 1
答案 0 :(得分:1)
很高兴它帮助......
您是否尝试过将JOIN连接到教师档案中,然后改为........
LEFT OUTER JOIN teacher_profiles c ON a.teacherId = c.teacherId
答案 1 :(得分:0)
看到你从时间表分发表中驾驶这个肯定你可以简单地附加到where条件.... 所以它变成......
..
..
WHERE A.TimeTableClassSectionId='46'
AND A.teacherID IS NOT NULL