mysqlスケール量子クエリと非法サブクエリ

1350 ワード

#whereまたはhavingの後:#標量子クエリー(単行サブクエリー)#列サブクエリー(複数行サブクエリー)#行サブクエリー(複数行複数列)
特徴:サブクエリは括弧内に配置され、一般的に条件の右側に配置され、スカラー量子クエリは一般的に単行オペレータを配備し、単行オペレータを使用する:<>=<=<>列サブクエリ:一般的に複数行オペレータを組み合わせて複数行オペレータを使用する: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
);