我试图在4个表上应用连接。但我找不到适当的结果。 我有4个表,如1.students,2.college,3.locations,4.departments。所以我在所有可用于连接条件的表中都有相同的列sid。 我希望所有匹配的行都来自四个表,如下面select语句中提到的列和左外表中的不匹配行,这是左外连接的工作。如何在四张桌子上应用左外连接条件?
我试过这种语法。
select
students.sname,
college.cname,
locations.loc,
department.dept
from students, college, locaions, departments
where student.sid=college.sid(+)
and college.sid=locations.sid(+)
and locations.sid=department.sid(+);
是这样的吗?
“sid”代表什么?由于学生没有地点或部门,所以不是学生证。四个桌子中的一个桌子上的“sid”是否独一无二? –
@Gordon Linoff:我也打算给Oracle添加标签:-)但是后来我想也许OP不使用Oracle,但只能从Internet获得语法。因此,我的答案是这个语法只有Oracle。 –
我想你可能需要一个完整的外部连接,因为可能会有学生没有大学院校和学生。 –