日期:2014-05-17  浏览次数:21136 次

两张表连接问题,现在怎么也得不到我想要的结果
表A数据表,表B代码表。
假如现在表B有3条记录
表A中部门1只有对应代码1的1条记录,部门2有对应代码2、3的两天记录。
怎样连接能够得到如下表记录:
每个部门都对应全部代码,原表没有的插入空记录,我用左右连接、全连接都不是我想要的结果啊。

------解决方案--------------------
select emp.ename,case when dept.deptno<>emp.deptno then null else dept.dname end dname from scott.emp,scott.dept


使用笛卡尔乘积可以解决这个问题,不过一般不推荐,数据量大时对性能影响较大
------解决方案--------------------
引用:
select emp.ename,case when dept.deptno<>emp.deptno then null else dept.dname end dname from scott.emp,scott.dept


使用笛卡尔乘积可以解决这个问题,不过一般不推荐,数据量大时对性能影响较大


你这个写法应该会查出6条’王五‘的记录。