数据库SQL实践47:如何获取emp_v和employees相同的数据

思路:

先找出emp_v中的emp_no,然后作为集合,判断employees中的emp_no是否在这个集合中,若在则取出记录。

select * from employees where emp_no in (select emp_no from emp_v);

由于视图 emp_v 的记录是从 employees 中导出的,所以要判断两者中相等的数据,只需要判断emp_no相等即可。

方法一:用 WHERE 选取二者 emp_no 相等的记录

select em.* from employees as em, emp_v as ev where em.emp_no = ev.emp_no

方法二:用 intersect 关键字求 employees 和 emp_v 的交集

select * from employees intersect select * from emp_v

方法三:仔细一想,emp_v的全部记录均由 employees 导出,因此可以投机取巧,直接输出 emp_v 所有记录

select * from emp_v;

 【错误方法:】用以下方法直接输出 *,会得到两张表中符合条件的重复记录,因此不合题意,必须在 * 前加表名作限定

select * from employees, emp_v where employees.emp_no = emp_v.emp_no

猜你喜欢

转载自blog.csdn.net/weixin_43160613/article/details/84819207