サブクエリの代わりに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 コマンドの違いの詳細な説明
目次バブルソート選択ソート挿入ソート要約するバブルソートバブルソートは、シーケンスの右側から始めて、...
この記事では、スクロール可能なポップアップウィンドウ効果を実現するためのVueの具体的なコードを参考...
背景最近、面接でデータベース トランザクションについてよく質問されます。通常は、@Transacti...
目次序文最適化ソ連オンデマンドインポート1. ルーティングファイルでコンポーネントをオンデマンドでイ...
ウェブページを作り始めたばかりの友人の多くは、拡張子が非常に多いことに気づきます。実際、htm と ...
今日、会社の Springboot プロジェクトは、テストのためにテスト サーバーにデプロイする準備...
この記事では、Linux におけるいくつかの主要なゼロコピー テクノロジと、ゼロコピー テクノロジを...
序文当社の MySQL オンライン環境のほとんどはバージョン 5.7.18 を使用しています。このバ...
2 つの異なるテーブルをクエリするには、結果をマージする必要があります。たとえば、table1 の列...
しばらくサーバーいじってなかったけど、やることがなくなったのでモバイルワークスに行って海外サーバーを...
Linux LVM論理ボリューム構成プロセスの詳細な説明多くの Linux ユーザーは、オペレーティ...
いつインストールするかprotoc コマンドを使用しても Protoc が見つからない場合は、インス...
1. 需要正しい Cookie 配信と SSO テストを確実に実行できるように、ローカル テスト ド...
1.html部分コードをコピーコードは次のとおりです。 <!DOCTYPE html> ...
Linux オペレーティング システムは過去 20 年間にわたってデータ センターに革命をもたらし...