SQL學習5.4- EXIST和IN 的使用場景
阿新 • • 發佈:2021-11-03
EXIST:
1.當從表比主表大時,EXISTS查詢的效率較高
2.exists是先從主查詢中取得一條資料,再代入到子查詢中,執行一次子查詢,判斷子查詢是否能返回結果,主查詢有多少條資料,子查詢就要執行多少次
例如:
SELECT *
FROM employees
WHERE NOT EXISTS (SELECT emp_no
FROM dept_emp
WHERE employees.emp_no = dept_emp.emp_no);
(exist不需要給定要監督的具體列)
IN:
1.當主表比從表大時,IN查詢的效率較高
2.in是先執行子查詢,得到一個結果集,將結果集代入外層謂詞條件執行主查詢,子查詢只需要執行一次
例如:
SELECT *
FROM employees
WHERE emp_no NOT IN (SELECT emp_no
FROM dept_emp);
(in需要給定要監督的具體列名)