我有2个MySQL表。一个包含有关学生的信息,另一个包含有关教师的信息。
为了找到学生或教师 ID 号,我必须根据提供的电子邮件地址进行查找。
但是,我无法知道电子邮件是学生还是教师ID。
如何查询这两个表,以便无论John Doe
是教师还是学生,查找johndoe@example.com
都会返回 ID 号?
如果有帮助,在学生表中,学生电子邮件位于名为"Person_Email"的列中,ID 位于名为"StudentID"的列中。在教师表中,教师电子邮件位于名为"Teacher_Email"的列中,ID 位于名为"教师 ID"的列中。
如果给定的电子邮件不能同时存在于两个表中,则只需union all
两个查询,如下所示:
select StudentID id from student where Person_Email = :email
union all select TeacherID from teacher where Teacher_Email = :email
如果想知道记录来自哪个表,可以在结果集中添加一列:
select StudentID id 'student' tbl from student where Person_Email = :email
union all select TeacherID, 'teacher' from teacher where Teacher_Email = :email