Oracle Sql联接两个表

我有一个查询联接两个表。

RESULT_TABLE:  
ID, TEST_RESULT , TEST_STATUS

EMAIL_TABLE:  
ID, EMAIL_TYPE, EMAIL_ADDRESS

RESULT_TABLE通常每个学生只有一个结果。一个学生通常会在EMAIL_TABLE中有两个电子邮件地址,一个为“个人”类型,一个为“学生”类型。 我需要一个将学生的成绩和两个电子邮件地址合并为一行的查询。

我的查询使用EMAIL_TABLE的两个实例来执行此操作:

Select r.id, r.result, e1.email_address "PERSONAL", e2.email_address "STUDENT"  
From result_table r, email_table e1, email_table e2 
Where
r.test_status = 'graded' 
AND e1.id = r.id  
AND e2.id = r.id  
AND e1.email_type ='Personal'  
AND e2.email_type = 'Student'

样本结果: ID:12345,结果:A,个人:me@personalemail.com,学生:ima@studentemail.edu ID:12222,结果:B,个人:number2@anotheremail.com,学生:youra@studentemail.edu

该查询在大多数情况下都有效,显示结果以及学生的两种电子邮件地址。  问题是,如果email_table中缺少email_types之一,则找不到整个结果。即使在email_table中不存在一个或两个电子邮件地址,我也需要它为每个学生显示结果。

进行此加入的正确方法是什么?