1. 程式人生 > >資料庫SQL實踐47:如何獲取emp_v和employees相同的資料

資料庫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