oracle,mysql数据库多表查询:内连接,外连接

时间:2024-10-14 08:10:36

1、在数据库原理之中对于多表查询实际上给出了两种表连接的概念。内连接:等值连接。只有条竭惮蚕斗件判断满足了才会显示出相应的剞麽苍足数据信息;外连接:数据表记录的全部显示,外连接分为三种,左外连接,右外连接,全外连接。tbl_dept表中一共有两条记录,其中“测试部”没有任何的员工,所以这个一个没有员工的部门。在tbl_emp中添加一条没有部门的员工数据。

oracle,mysql数据库多表查询:内连接,外连接oracle,mysql数据库多表查询:内连接,外连接

2、使用emp表与dept表进行内连接处理:select * from tbl_emp e join tbl_dept d on e.d_id=d.dept_id;此时是一个等值判断“e.d_id=d.dept_id”(内连接)。通过结果我们可以发现只要不满足于此条件的数据都不会显示。

oracle,mysql数据库多表查询:内连接,外连接

3、左外连接是要求左表的数据全部显示:select * from tbl_emp e left join tbl_dept d on e.d_id=d.dept_id;

oracle,mysql数据库多表查询:内连接,外连接

4、右外连接是要求右表的数据全部显示:select * from tbl_emp e right join tbl_dept d on e.d_id=d.dept_id;

oracle,mysql数据库多表查询:内连接,外连接

5、下面就利用外连接来做一个自身连接的处理操作,所谓的自身连接值的是数据表自己来关联自己。emp表中有一个mgr字段表示领导编号。通过emp表得到雇员的姓名。通过emp表找到领导的姓名。

oracle,mysql数据库多表查询:内连接,外连接

6、第一步:查询每个雇员姓名、email。select e.emp_name,e.email 酆璁冻嘌from tbl_e罪焐芡拂mp e ;第二步:查询领导的姓名,领导需要再次引入emp表,所以追加一个条件删除掉笛卡尔积。select e.emp_name,e.email,m.emp_name from tbl_emp e join tbl_emp mon e.mgr=m.emp_id

oracle,mysql数据库多表查询:内连接,外连接

7、以上的操作使用的内连接,所以只要mgr字段的数据为空的雇员那么就不再进行显示了,所以这个是有问题的,所以应该使用外连接来进行控制。select e.emp_name,e.em锾攒揉敫ail,m.emp_name from tbl_emp e left join tbl_emp mon e.mgr=m.emp_id

oracle,mysql数据库多表查询:内连接,外连接

8、外连接一定要根据你具体的程序查询要求来定义。

© 2025 海能知识库
信息来自网络 所有数据仅供参考
有疑问请联系站长 site.kefu@gmail.com