mysqlスケール量子クエリと非法サブクエリ
1350 ワード
#whereまたはhavingの後:#標量子クエリー(単行サブクエリー)#列サブクエリー(複数行サブクエリー)#行サブクエリー(複数行複数列)
特徴:サブクエリは括弧内に配置され、一般的に条件の右側に配置され、スカラー量子クエリは一般的に単行オペレータを配備し、単行オペレータを使用する:<>=<=<>列サブクエリ:一般的に複数行オペレータを組み合わせて複数行オペレータを使用する:in、any、some、all
#標準量子クエリ#ケース:ABELより給料が高い従業員情報
#ケース:jobを返すidは141番と同じで、salaryは143番より多い従業員の名前、job_idと給料
#ケース:最も少ない賃金の従業員を返すlast_name、job_idとsalary
#ケース:最低賃金が50番より大きい部門の最低賃金を照会する部門idとその最低賃金
#標準量子クエリーの不正使用
特徴:サブクエリは括弧内に配置され、一般的に条件の右側に配置され、スカラー量子クエリは一般的に単行オペレータを配備し、単行オペレータを使用する:<>=<=<>列サブクエリ:一般的に複数行オペレータを組み合わせて複数行オペレータを使用する:in、any、some、all
#標準量子クエリ#ケース:ABELより給料が高い従業員情報
SELECT *
FROM employees
WHERE salary>(
SELECT salary
FROM employees
WHERE last_name='Abel'
);
#ケース:jobを返すidは141番と同じで、salaryは143番より多い従業員の名前、job_idと給料
SELECT
last_name,job_id,salary
FROM employees
WHERE job_id=(
SELECT job_id
FROM employees
WHERE employee_id=141
)
AND salary>(
SELECT salary
FROM employees
WHERE employee_id=143
);
#ケース:最も少ない賃金の従業員を返すlast_name、job_idとsalary
SELECT last_name,job_id,salary
FROM employees
WHERE salary=(
SELECT MIN(salary)
FROM employees
);
#ケース:最低賃金が50番より大きい部門の最低賃金を照会する部門idとその最低賃金
SELECT department_id,MIN(salary)
FROM employees
GROUP BY department_id
HAVING MIN(salary)>(
SELECT MIN(salary)
FROM employees
WHERE department_id=50
);
#標準量子クエリーの不正使用
SELECT department_id,MIN(salary)
FROM employees
GROUP BY department_id
HAVING MIN(salary)>(
SELECT salary # ,
FROM employees
WHERE department_id=50
);