查询获取一个表中不存在的值,而不是从另一个表中进行比较

时间:2016-01-26 07:12:38

标签: mysql sql join

我有2张桌子。 1st包含所有具有ID,fname和姓氏的学生的列表。第二名有他们的身份证,日期和出勤率。

我可以使用哪个查询来比较第二个表到第一个表的日期和ID,以查看在该特定日期缺席的所有学生的列表。

我想过使用外连接但不确定它是如何工作的。有什么建议吗?

2 个答案:

答案 0 :(得分:0)

SELECT *
FROM students
LEFT JOIN attendances ON students.id=attendances.student_id
WHERE attendances.attendance = true AND attendances.date='neededDate';

我认为你的两张桌子是学生和考勤,考勤表有student_id作为外键,考勤场是布尔值。希望它适合你。

答案 1 :(得分:0)

以下查询已使用以下假设编写 如果学生不在场,则列出勤包含NULL值,如果他/她在场,则列出其他值

SELECT 
a.id,
concat(a.fname||' '||a.lname) As Full_Name,
b.date,
case when b.attendance is Null 'Absent' else 'Present' End as Attendance_Status
FROM students a
LEFT JOIN attendances b ON students.id=b.student_id
b.date='&RequiedDate';

所需日期将被视为用户的输入参数