MySQLのクエリと違法スカラサブクエリ

#whereまたはHAVING後ろ:
#スカラークエリ(単一サブクエリ)
#列サブクエリ(複数行のサブクエリ)
#サブクエリの行(行と列)

特徴:使用して一般的なスカラークエリ演算子を括弧に入れサブクエリ、右側の一般的な条件、単一の行
<>> = <= <>:単一行オペレータ
カラムサブクエリ:使用するオペレータを持つ行の通常複数
マルチライン演算子:で、任意の、いくつかの、すべての

#スカラー副問合せ
#ケース:従業員情報ABELよりも高い賃金

SELECT *
FROM  employees
WHERE salary>(

    SELECT salary
    FROM employees
    WHERE last_name='Abel'
);

ケース#:従業員の給与より従業員の名前第143号、JOB_IDおよび賃金よりも、141人の従業員の数が同じで返さ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、および給与を返します

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
);

おすすめ

転載: blog.51cto.com/14437184/2438098