oracle菜鸟学习之 自连接查询实验
实验表的创建
表字段说明:
id:员工编号
name:员工名字
ano:管理人员编号create table admin(id varchar2(4),name varchar2(10),ano varchar2(4)); insert into admin values('001','XiongDa','004'); insert into admin values('002','XiongEr','004'); insert into admin values('003','ZhangSan','003'); insert into admin values('004','ZhaoSi','004');
查看表
sql> select * from admin;
ID NAME ANO
------------ ------------------------------ ------------
001 XiongDa 004
002 XiongEr 004
003 ZhangSan 003
004 ZhaoSi 004
sql>
问题
实验步骤
主要思路:怎么找出ano对应的名字
id和ano的对应关系
sql> select * from admin a ,admin b;
ID NAME ANO ID NAME ANO
------------ ------------------------------ ------------ ------------ ------------------------------ ------------
001 XiongDa 004 001 XiongDa 004
001 XiongDa 004 002 XiongEr 004
001 XiongDa 004 003 ZhangSan 003
001 XiongDa 004 004 ZhaoSi 004
002 XiongEr 004 001 XiongDa 004
002 XiongEr 004 002 XiongEr 004
002 XiongEr 004 003 ZhangSan 003
002 XiongEr 004 004 ZhaoSi 004
003 ZhangSan 003 001 XiongDa 004
003 ZhangSan 003 002 XiongEr 004
003 ZhangSan 003 003 ZhangSan 003
003 ZhangSan 003 004 ZhaoSi 004
004 ZhaoSi 004 001 XiongDa 004
004 ZhaoSi 004 002 XiongEr 004
004 ZhaoSi 004 003 ZhangSan 003
004 ZhaoSi 004 004 ZhaoSi 004
16 rows selected.
通过人眼可以看得出我们需要的数据,只要将第二个表的name写在第一个表的ano即可得出我们想要的信息
001 XiongDa 004 004 ZhaoSi 004
002 XiongEr 004 004 ZhaoSi 004
003 ZhangSan 003 003 ZhangSan 003
004 ZhaoSi 004 004 ZhaoSi 004
通过上面的结果找对应关系,发现只要ano=id,那么就能得出结果
sql> select a.id,a.name,b.name as aname from admin a ,admin b where a.ano=b.id;
ID NAME ANAME
------------ ------------------------------ ------------------------------
003 ZhangSan ZhangSan
004 ZhaoSi ZhaoSi
002 XiongEr ZhaoSi
001 XiongDa ZhaoSi
sql>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。