サブクエリの代わりにJOINを使用する MySQL はバージョン 4.1 以降で SQL サブクエリをサポートしています。この手法では、SELECT ステートメントを使用して単一列のクエリ結果を作成し、その結果を別のクエリのフィルター条件として使用します。たとえば、顧客基本情報テーブルに注文がない顧客を削除する場合は、次に示すように、サブクエリを使用して、まず販売情報テーブルから注文したすべての顧客の顧客 ID を取得し、その結果をメインクエリに渡すことができます。 顧客情報から削除 WHERE CustomerID が含まれない (SELECT CustomerID FROM salesinfo) サブクエリを使用すると、論理的には複数のステップを一度に完了する必要がある多くの SQL 操作を一度に完了できるだけでなく、トランザクションまたはテーブル ロックを回避でき、記述も簡単になります。ただし、場合によっては、サブクエリをより効率的な JOIN に置き換えることができます。たとえば、注文記録がないすべてのユーザーを取得したい場合、次のクエリを使用して完了できます。 顧客情報から*を選択 WHERE CustomerID が含まれない (SELECT CustomerID FROM salesinfo) このクエリを完了するために JOIN を使用すると、速度が大幅に向上します。特に、salesinfo テーブルの CustomerID にインデックスがある場合は、パフォーマンスが向上します。クエリは次のようになります。 顧客情報から*を選択 LEFT JOIN salesinfoON customerinfo.CustomerID=salesinfo。 顧客ID salesinfo.CustomerID が NULL の場合 JOIN.. は、MySQL がこの論理的な 2 段階のクエリを完了するためにメモリ内に一時テーブルを作成する必要がないため、より効率的です。 要約する サブクエリの代わりに結合を使用した MySQL の最適化に関するこの記事はこれで終わりです。参考用です。不備があれば指摘してください。誰でも意見を交換したり議論したりすることができます。このサイトをサポートしてくださった友人の皆さんに感謝します。 以下もご興味があるかもしれません:
|
>>: Linux の chown コマンドと chmod コマンドの違いの詳細な説明
目次502 不正なゲートウェイ エラーの発生1. 502 不正なゲートウェイ エラーとは何ですか? ...
1例: 図1のフィールドを図2に分割するには アカウントIDを選択、 サブストリングインデックス(サ...
目次01 レプリカセットアーキテクチャ02 MySQL Shellの紹介とインストール03 My...
技術初心者として、初めて Linux システムをインストールするプロセスを記録しています。まず、Wi...
1. はじめに● ランダム書き込みではヘッドがトラックを頻繁に変更するため、効率が大幅に低下します。...
Linux の ps コマンドは Process Status の略です。 ps コマンドは、システ...
1. 絶対配置レイヤーの隣接フローティング レイヤーの幅が親レイヤーの幅と等しくなく、フロートがクリ...
1. 原因公式の cerbot は面倒すぎます。野生の成長よりもさらに悪い acme.sh の使用は...
目次1. 古いMySQL5.7データをバックアップする2. MySQL8.0.13のイメージをプルし...
この記事では主に、フォント読み込みの最適化に関する一般的な戦略を紹介します。内容の大部分は参考資料と...
bgcolor="テキストの色" background="背景画像&q...
数日前、バスで仕事に行きました。バスのカードリーダーの実際の使用シーンを実際に見て、カードリーダーの...
目次1. 基本2. 問題の説明3. 解決策付録: js を使用して Excel の日付形式を変換する...
目次1. Docker Compose とは何ですか? 2. Docker Composeのインスト...
1.まずnpmをアンインストールする sudo npm アンインストール npm -g 2. ノー...