ホームページ  >  記事  >  データベース  >  MySQLサブクエリの使い方

MySQLサブクエリの使い方

王林
王林転載
2023-06-02 23:09:411559ブラウズ

相関サブクエリ

相関サブクエリの実行プロセス

サブクエリの実行が外部クエリに依存している場合、通常はサブクエリ内のテーブルが外部テーブルを使用していることが原因です。が実行されるため、外部クエリが実行されるたびにサブクエリを再計算する必要があります。このようなサブクエリは相関サブクエリと呼ばれます。メイン クエリの各行が実行されると、相関サブクエリが行ごとの順序で実行されます。

MySQLサブクエリの使い方

説明: メイン クエリの列をサブクエリで使用します。

Title: last_name、給与、および給与が上限を超える従業員の合計をクエリします。部門の平均給与 その部​​門 ID

方法 1: 関連サブクエリ

MySQLサブクエリの使い方

FROM

SELECT last_name,salary,e1.department_id
FROM employees e1,(SELECT department_id,AVG(salary) dept_avg_sal FROM employees GROUP
BY department_id) e2
WHERE e1.`department_id` = e2.department_id
AND e2.dept_avg_sal < e1.`salary`;

from タイプでサブクエリを使用しますサブクエリ: subquery As from の一部では、サブクエリを () で囲む必要があり、サブクエリには

という名前を付け、「一時仮想テーブル」として使用する必要があります。

タイトル: 従業員 ID、給与を部門名で並べ替えてクエリします。

ORDER BY でサブクエリを使用します:

SELECT employee_id,salary
FROM employees e
ORDER BY (
SELECT department_name
FROM departments d
WHERE e.`department_id` = d.`department_id`
);

EXISTS および NOT EXISTS キーワード

関連するサブクエリは次のとおりです。通常は、サブクエリ内の条件を満たす行があるかどうかを確認するために EXISTS 演算子と一緒に使用されます。

サブクエリに条件を満たす行がない場合:

条件は FALSE を返します

サブクエリでの検索を続行します

If in the subqueryサブクエリ 条件を満たす行があります:

サブクエリでの検索を続行しないでください

条件は TRUEを返します

NOT EXISTS キーワードは、特定の条件が満たされない場合を示します。存在する場合は TRUE が返され、存在しない場合は FALSE が返されます。

タイトル: 会社のマネージャーの従業員 ID、姓、ジョブ ID、部門 ID 情報をクエリします。

SELECT employee_id, last_name, job_id, department_id
FROM employees e1
WHERE EXISTS ( SELECT *
FROM employees e2
WHERE e2.manager_id =
e1.employee_id);

サブクエリは、実際には未知のテーブルをクエリした後の条件判断ですが、自己結合はベースとなります。既知の独自のデータテーブル

に対して条件判断を行うため、ほとんどの DBMS で自己結合処理が最適化されます。

以上がMySQLサブクエリの使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。