2010-09-19 11:10
提问者采纳
oracle特有的左外联书写方式,当然你也可以用传统的通用的左外联,比如给你举个例子 SELECT s.name AS 姓名,g.grade AS 分数,c.cid AS 课程名 FROM tbl_student s LEFT OUTER JOIN tbl_grade g ON s.StudentId=g.sid LEFT OUTER JOIN tbl_class c ON g.cid=c.ClassId 它跟下面等价 SELECT s.name AS 姓名,g.grade AS 分数,c.classname AS 课程名 FROM tbl_student s,tbl_grade g,tbl_class c WHERE (s.StudentId=g.sid(+)) AND (g.cid=c.ClassId(+))
2012-05-27 15:40 提问者采纳热心网友(+) 表示外连接。条件关联时,一般只列出表中满足连接条件的数据。如果条件的一边出现(+),则可列出该表中在条件另一侧的数据为空的那些记录。比如两个表:员工表和工资表。员工表中有总经理、A、B、C四条记录,工资表中只有A、B、C三人的记录。如果写如下语句: select 姓名,工资 from 员工表,工资表 where 员工表.姓名=工资表.姓名 那么只可能但出A、B、C三人的记录。 如果写成: select 姓名,工资 from 员工表,工资表 where 员工表.姓名(+)=工资表.姓名 则可列出总经理及A、B、C三人的记录,只不过查询结果中总经理对应的”工资“列值为空。提问者评价
Thank you!