解決Mysql多行子查詢的使用及空值問題
1 定義
- 也稱為集合比較子查詢
- 內查詢返回多行
- 使用多行比較操作符
2 多行比較操作符
-- 多行子查詢 -- IN SELECT employee_id, manager_id, department_id FROM employees WHERE manager_id IN ( -- 在返回集合中查找有沒有相同的manager_id在裡面 SELECT manager_id FROM employees WHERE employee_id IN ( 141, 147 )); -- ANY #題目:返回其它job_id中比job_id為'IT_PROG'部門任一工資低的員工的員工號、姓名、job_id 以及salary last_name, job_id, salary job_id != 'IT_PROG' AND salary < ANY ( -- 比任意一個小都可以 SELECT salary FROM employees WHERE job_id = 'IT_PROG' ); -- ALL #題目:返回其它job_id中比job_id為'IT_PROG'部門所有工資低的員工的員工號、姓名、job_id 以及salary AND salary < ALL ( -- 比所有的都小才可以
3 空值問題
3.1 問題
-- 空值問題 SELECT last_name FROM employees WHERE employee_id NOT IN ( SELECT -- 子查詢中的結果有NULL manager_id employees)
子查詢的結果:
查詢結果:
3.2 解決
去掉子查詢中的NULL即可
-- 空值問題解決 SELECT last_name FROM employees WHERE employee_id NOT IN ( SELECT manager_id FROM employees manager_id IS NOT NULL)
子查詢去掉NULL:
查詢結果:
到此這篇關於Mysql多行子查詢的使用及空值問題的解決的文章就介紹到這瞭,更多相關Mysql多行子查詢內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!