oracle中关于查询结果不一致问题
发布网友
发布时间:2022-04-13 23:00
我来回答
共3个回答
热心网友
时间:2022-04-14 00:29
第一条:用到的自然连接,但是你没有写连接的条件。所以系统就是将两个表按照同名的列表示相同意义,建立起一个等值内连接,返回结果的时候去掉重复的列
第二条:使用using,就是使用你的employees的表中的department_id字段,而且你的department_id和你的departments表中的department_id的类型相同。用using的时候,必须是两个表中的栏位名称相同,而且类型也得一样。(例如:如果是varchar2(10)的,那两个栏位都得是varchar2(10))
第三也是自然连接,因为oracle的join默认为inner join 。有条件就会按照你写的条件employees.employee_id=departments.department_id。
如果没有猜错,你是要employees表中的部门id串department表中部门的id,正确的写法如下(如果你的两个栏位的类型相同,那么你第二个写法也算正确,和下面的写法结果是一样的。)
select employee_id,first_name,departments.department_id,department_name
from employees join departments
employees.department_id=departments.department_id --这样的写法:是不用管两个栏位的类型
热心网友
时间:2022-04-14 01:47
1,是自然连接,默认使用两个表中字段类型和名称都相同的字段关联(可能有多组字段被关联),
2,using(department_id),表明指定了使用department_id关联
3,就是一般的连接
热心网友
时间:2022-04-14 03:22
最后一个肯定和前面不一样,连接属性部不对:
employees.employee_id=departments.department_id;