两张表连接问题,现在怎么也得不到我想要的结果

westuser 2013-05-28 10:29:11
表A数据表,表B代码表。
假如现在表B有3条记录
表A中部门1只有对应代码1的1条记录,部门2有对应代码2、3的两天记录。
怎样连接能够得到如下表记录:
每个部门都对应全部代码,原表没有的插入空记录,我用左右连接、全连接都不是我想要的结果啊。
...全文
92 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
vanjayhsu 2013-05-28
  • 打赏
  • 举报
回复
引用 4 楼 u010412956 的回复:
[quote=引用 3 楼 vanjayhsu 的回复:]
select emp.ename,case when dept.deptno<>emp.deptno then null else dept.dname end dname from scott.emp,scott.dept
使用笛卡尔乘积可以解决这个问题,不过一般不推荐,数据量大时对性能影响较大
你这个写法应该会查出6条’王五‘的记录。[/quote] 是的,我那个示例没有重复的,所以没注意到这个情况。一般一个人不会属于多个部门吧。不知道楼主的实际情况怎样。。。
u010412956 2013-05-28
  • 打赏
  • 举报
回复
引用 3 楼 vanjayhsu 的回复:
select emp.ename,case when dept.deptno<>emp.deptno then null else dept.dname end dname from scott.emp,scott.dept
使用笛卡尔乘积可以解决这个问题,不过一般不推荐,数据量大时对性能影响较大
你这个写法应该会查出6条’王五‘的记录。
vanjayhsu 2013-05-28
  • 打赏
  • 举报
回复
select emp.ename,case when dept.deptno<>emp.deptno then null else dept.dname end dname from scott.emp,scott.dept
使用笛卡尔乘积可以解决这个问题,不过一般不推荐,数据量大时对性能影响较大
westuser 2013-05-28
  • 打赏
  • 举报
回复
表A表B
结果
u010412956 2013-05-28
  • 打赏
  • 举报
回复
描述的比较迷糊, 给出测试数据,并给出你要的结果

17,377

社区成员

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

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