尝试这个:
SELECT * FROM checking c
LEFT JOIN attendance a ON c.student_id = a.student_id AND a.is_excused = "true"
WHERE c.parent_consent = "false";
这将为您提供 parent_consent 为 false 的所有检查信息,以及每当您有 is_excused = true 的出勤信息时。
如果您不想在没有出席信息时检查信息,您可以执行以下操作:
SELECT * FROM checking c
INNER JOIN attendance a ON c.student_id = a.student_id
WHERE c.parent_consent = "false"
AND a.is_excused = "true";
编辑:
如果您不想加入但要从两个表中获取所有信息,您可以执行以下操作:
SELECT checking_id_pk,student_id,parent_consent FROM checking c
WHERE c.parent_consent = "false"
UNION
SELECT attendance_id_pk,student_id,is_excused FROM attendance a
WHERE a.is_excused = "true";
在文档中查看有关 UNION 的更多信息:
UNION 有效地将 query2 的结果附加到 query1 的结果(尽管不能保证这是实际返回行的顺序)。此外,它以与 DISTINCT 相同的方式从其结果中消除重复行,除非使用 UNION ALL。