全外连接 条件有用么

wren4255 2011-12-19 03:12:12
全外连接(full outer join)全外连接 对两个表都不加限制 所有两个表中的行都会包括在结果集中

select emplName,emplAge,deptName from employees emp full outer join depts dept on dept.deptID =emp.deptID;


所有两个表中的行都会包括在结果集中, 那还要条件干什么??on dept.deptID =emp.deptID;
...全文
112 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
dawugui 2011-12-19
  • 打赏
  • 举报
回复
[Quote=引用楼主 wren4255 的回复:]
全外连接(full outer join)全外连接 对两个表都不加限制 所有两个表中的行都会包括在结果集中

select emplName,emplAge,deptName from employees emp full outer join depts dept on dept.deptID =emp.deptID;


所有两个表中的行都会包括在结果集中, 那还要条件干什么??on……
[/Quote]
这个条件:on dept.deptID =emp.deptID;是告诉你需要使用deptid来连接,不然会成迪卡尔积.
我心飞翔 2011-12-19
  • 打赏
  • 举报
回复
外连接:即使连接条件中的一列包含空值也会返回一行。
全外连接:就是左右2个表的所有行都返回,即使没有满足相应连接条件的行。

下图为products表中记录,注意12号产品,没有指定产品的类型ID



下图为product_types表中的记录,注意:在products表中没有类型名为Magzine的产品。


下面是2个表进行全外连接后的结果,注意最后的My Front Line和Magzine都没显示出来了。

yixilan 2011-12-19
  • 打赏
  • 举报
回复
当存在dept.deptID =emp.deptID这样的数据时,会都列出来,看不出什么效果;
当不存在这种数据时,就能看出效果了。
你可以试一下。

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧