JOIN两个表,其中一个表有where子句

时间:2015-05-26 12:17:41

标签: sql oracle

我想加入两个表,其中Person表字段(具有Street S1)将合并到Student表中,但添加新字段(STUDENT / NONSTUDENT)。 学生表有1milyon行,Result person表最多有100行。 将它们全部合并的最佳性能是什么?

student table (name, age)
A-12
B-23
C-24

person table (name, street, live)
A-S1-L
B-S2-NL
D-S1-L

最后我想要这样的结果

A-12-Student
D-NULL-NOTSTUDENT

1 个答案:

答案 0 :(得分:2)

这应该有效:

select p.name,
       s.age, 
       case when s.name is null then 'NotStudent' 
             else 'Student' end as IsStudent
from person p
left join student s on p.name = s.name
where p.Street = 's1'