MySQL where后面的标量子查询使用
#一、where或having后面
1、標量子查詢(單行子查詢)
2、列子查詢(多行子查詢)
3、行子查詢(多列多行)
特點:
①子查詢放在小括號內
②子查詢一般放在條件的右側
③標量子查詢,一般搭配著單行操作符使用
> < >= <= = <>
列子查詢,一般搭配著多行操作符使用
in、any/some、all
④子查詢的執行優先于主查詢執行,主查詢的條件用到了子查詢的結果
#1.標量子查詢★
#案例1:誰的工資比 Abel 高?
#①查詢Abel的工資
SELECT salary FROM employees WHERE last_name = 'Abel'#②查詢員工的信息,滿足 salary>①結果
SELECT * FROM employees WHERE salary>( SELECT salary FROM employees WHERE last_name = 'Abel' );#案例2:返回job_id與141號員工相同,salary比143號員工多的員工 姓名,job_id 和工資
#①查詢141號員工的job_id???????
SELECT job_id FROM employees WHERE employee_id = 141#②查詢143號員工的salary???????
SELECT salary FROM employees WHERE employee_id = 143#③查詢員工的姓名,job_id 和工資,要求job_id=①并且salary>②???????
SELECT last_name,job_id,salary FROM employees WHERE job_id = (SELECT job_idFROM employeesWHERE employee_id = 141 ) AND salary>(SELECT salaryFROM employeesWHERE?employee_id?=?143);#案例3:返回公司工資最少的員工的last_name,job_id和salary
#①查詢公司的 最低工資???????
SELECT MIN(salary) FROM employees#②查詢last_name,job_id和salary,要求salary=①???????
SELECT last_name,job_id,salary FROM employees WHERE salary=(SELECT MIN(salary)FROM employees );#案例4:查詢最低工資大于50號部門最低工資的部門id和其最低工資
#①查詢50號部門的最低工資???????
SELECT MIN(salary) FROM employees WHERE department_id = 50#②查詢每個部門的最低工資???????
SELECT MIN(salary),department_id FROM employees GROUP BY department_id#③ 在②基礎上篩選,滿足min(salary)>①???????
SELECT MIN(salary),department_id FROM employees GROUP BY department_id HAVING MIN(salary)>(SELECT MIN(salary)FROM employeesWHERE?department_id?=?50 );#非法使用標量子查詢???????
SELECT MIN(salary),department_id FROM employees GROUP BY department_id HAVING MIN(salary)>(SELECT salaryFROM employeesWHERE department_id = 250 );總結
以上是生活随笔為你收集整理的MySQL where后面的标量子查询使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL子查询介绍
- 下一篇: MySQL where后面的列子查询使用