简单理解外连接

sql的高级查询有四种连接,分别是:等值连接,非等值连接,外连接,自连接。

等值连接很简单,如:

  1. select * from emp.dept   
  2. where emp.no = dept.dept_no  

非等值连接,是这两个表之间没有直接关系,他们要满足一个条件,如,哪些员工的工资级别属于三级:

  1. select ename,sal  from emp,salgrage    
  2.  where grade = 3 and sal between losal and hisal  

自连接,是同一个基表的不同行做连接,如,指出每个雇员的经理的名字:

  1. select worker.ename,manager.ename  n   
  2.  from emp  worker,emp  manager   
  3.  where worker.mgr = manager.empno  

步入正题,外连接,简单的说,就是把不带加号(+)那一边的表的数据全部取出,如果带加号那一端的表中没有对应的数据,则用空白补充。说白了,加号的意思就是补充。(因为我每次用外连接的时候都要反应半天,所以自己找了个简单的记忆方法,不知道你听懂没有?)下面这个例子在加以详细解释一下下,如,查出所有员工及对应部门的记录,包括没有任何员工的部门记录。

  1. SELECT e.last_name,  e.department_id,  d.department_name   
  2.   
  3.   FROM employees e, departments d   
  4.   
  5.   WHERE e.department_id(+)=d.department_id;   
  6.   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值