笛卡尔集错误

笛卡尔集错误。

   ①省略了连接条件。

   ②连接条件无效。

   ③所有表中的行互相连接。

    解决办法:添加有效的连接条件。

 

select e.employee_id,d.department_id
from employees e , departments d 

 

比如想要查询的employee_id属于employees 表,department_id属于departments 表,由于没有添加过滤条件,两个表中的所有行会相互连接,从而产生笛卡尔集错误。

 

select e.employee_id,d.department_id
from employees e , departments d 
where e.department_id = d.department_id ;

需要添加过滤条件来避免笛卡尔集错误。(此方法属于内连接,这样会导致两个表中如果有不符合连接条件的行被过滤)(此方法属于内连接,这样会导致两个表中如果有不符合连接条件的行被过滤)
比如上表中 employees 中,可能存在员工,不属于任何部门,或者在departments表中,有的部门没有员工。内连接会导致这样的情况的出现。 employees 中,可能存在员工,不属于任何部门,或者在departments表中,有的部门没有员工。内连接会导致这样的情况的出现。 

你可能感兴趣的:(ORACLE学习)