2007-01-16
简单理解外连接
sql的高级查询有四种连接,分别是:等值连接,非等值连接,外连接,自连接。
等值连接很简单,如:
- select * from emp.dept
- where emp.no = dept.dept_no
非等值连接,是这两个表之间没有直接关系,他们要满足一个条件,如,哪些员工的工资级别属于三级:
- select ename,sal from emp,salgrage
- where grade = 3 and sal between losal and hisal
自连接,是同一个基表的不同行做连接,如,指出每个雇员的经理的名字:
- select worker.ename,manager.ename n
- from emp worker,emp manager
- where worker.mgr = manager.empno
步入正题,外连接,简单的说,就是把不带加号(+)那一边的表的数据全部取出,如果带加号那一端的表中没有对应的数据,则用空白补充。说白了,加号的意思就是补充。(因为我每次用外连接的时候都要反应半天,所以自己找了个简单的记忆方法,不知道你听懂没有?)下面这个例子在加以详细解释一下下,如,查出所有员工及对应部门的记录,包括没有任何员工的部门记录。
- SELECT e.last_name, e.department_id, d.department_name
- FROM employees e, departments d
- WHERE e.department_id(+)=d.department_id;
评论
qingzi2534
2007-06-25
全外连接,就字面意思而言,不难理解吧?
既是左外连接 又是有外连接
dogstar
2007-06-14
连接分为三种:内连接、外连接、交叉连接 内连接:INNER JOIN 分为三种:等值连接、自然连接、不等连接 外连接: 分为三种:左外连接(LEFT OUTER JOIN或LEFT JOIN)、右外连接(RIGHT OUTER JOIN或RIGHT JOIN)和全外连接(FULL OUTER JOIN或FULL JOIN)三种 交叉连接(CROSS JOIN) 没有WHERE 子句,它返回连接表中所有数据行的笛卡尔积
抛出异常的爱
2007-06-08
javastudy 写道
是不是还有卡笛尔连接啊,
那东西有用么?
Lucas Lee
2007-01-16
+号的理解是正确的。
不过这种方式是Oracle专有的,现在应该根据SQL标准使用left(or right,full) outer join ...on...
这种通用的方式。Oracle9+和其他数据库都支持得很好。
不过这种方式是Oracle专有的,现在应该根据SQL标准使用left(or right,full) outer join ...on...
这种通用的方式。Oracle9+和其他数据库都支持得很好。
- 浏览: 174677 次
- 性别:

- 来自: 烟台

- 详细资料
搜索本博客
我的相册
200804090708271400855637
共 39 张
共 39 张
最近加入圈子
最新评论
-
2007,年终总结
qingzi2534 写道08年一开始计划就完全没有执行,早上起不来,没有时间吃 ...
-- by 刑天战士 -
2007,年终总结
qingzi2534 写道08年一开始计划就完全没有执行,早上起不来,没有时间吃 ...
-- by weiqingfei -
2007,年终总结
08年一开始计划就完全没有执行,早上起不来,没有时间吃早餐,晚上连续熬夜到12点 ...
-- by qingzi2534 -
2007,年终总结
曾经早上8点干起然后干到转钟一直干了半年,最后身体几乎搞垮的人飘过。。。
-- by zhangfeiyu2005 -
2007,年终总结
qingzi2534 写道 每天都要在2点前睡觉 很好奇,到底是几点上班的 ...
-- by fqtrnt






评论排行榜