左結合の再考: ON 句と WHERE 句の区別
SQL Server では、LEFT JOIN 操作はデータの取得において重要な役割を果たします。複数のテーブルから。ただし、ON 句と WHERE 句での結合条件の指定の間には、微妙ではありますが重要な違いが存在します。
次のクエリを考えてみましょう。
SELECT t1.f2 FROM t1 LEFT JOIN t2 ON t1.f1 = t2.f1 AND cond2 AND t2.f3 > something
このクエリは、次のクエリから f2 列を取得しようとします。テーブル t1 に結合しますが、オプションで f1 列の一致する値と追加の条件 (cond2 および t2.f3 > に基づいてテーブル t2 の行を結合します)。
対照的に、次のクエリは異なるアプローチを採用しています。
SELECT t1.f2 FROM t1 LEFT JOIN t2 ON t1.f1 = t2.f1 AND cond2 WHERE t2.f3 > something
ここでは、結合条件は ON 句のみで指定されていますが、t2.f3 > は ON 句でのみ指定されています。何かの条件が WHERE 句のフィルターとして追加されます。
違いを理解する
これら 2 つのクエリの主な違いは、操作の順序にあります。
- ON 句: に一致する行を識別するために使用される条件を指定します。 参加する。これらの条件を満たさない行は、結合された結果セットから除外されます。
- WHERE 句: 追加の条件に基づいて、結合された結果セットから行をフィルターします。
例
この違いを説明するために、候補の表を考えてみましょう(候補者) と投票の表 (投票):
candidates | name | |-------------| | Obama | | Romney | votes | voter | voted_for | |-------------|-------------| | Mickey Mouse | Romney | | Donald Duck | Obama |
クエリ 1:
SELECT * FROM candidates c LEFT JOIN votes v ON c.name = v.voted_for AND v.voter = 'Donald Duck'
このクエリは、ロムニーを含むすべての候補者を取得します。ドナルドダックはオバマに投票した。これは、v.voter = 'Donald Duck' 条件が ON 句で指定されており、結合操作にのみ影響するためです。
クエリ 2:
SELECT * FROM candidates c LEFT JOIN votes v ON c.name = v.voted_for WHERE v.voter = 'Donald Duck'
このクエリでは、v.voter = 'Donald Duck' 条件が WHERE 句に移動されます。その結果、ロムニーはドナルドダックからの一致する票がないため、結果セットから除外されます。ドナルドダックから投票を受けたオバマのみが返されます。
結論
LEFT JOIN 操作の ON 句と WHERE 句の区別を理解することは、効果的に情報を取得するために不可欠です。 SQL Server 内のデータ。適切な句に条件を慎重に配置することで、一致基準を制御し、結合された結果セットを効率的にフィルタリングできます。
以上がSQL Server の LEFT JOIN: `ON` 句と `WHERE` 句の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

blobdatatypesinmysqlareusedlarginglaredatalikeimagesorudio.1)useblobtypes(tinyblobtolongblob)Basedatasizeneeds。 2)storeblobsin perplate petooptimize performance.3)scondididididididididersxternalストレージBlob Romanaデータベースindimprovebackupe

toadduserstomysqlfromthecommandline、loginasroot、thenusecreateuser'username '@' host'ident'ident'identifidedby'password '; tocreateanewuser.grantpermissions with grantpermissions with grantalgegesondatabase

mysqlofferseightStringDatatypes:char、varchar、binary、varbinary、blob、text、enum、andset.1)charisfixed-length、yealforconsistent datalikecountrycodes.2)varcharisvariable length、efficational forvaryingdatalikenames.3)binaryandvanterbinarydata a similati

toaddauserinmysql、usethecreateuserstatement.1)usecreateuser'newuser '@' localhost'ident'identifidedby'password '; tocreateauser.2)exestrongPolicieswithieswithieSwithvalidate_passwordworuginsettings

ストアドプロシージャは、パフォーマンスを向上させ、複雑な操作を簡素化するためのMySQLのSQLステートメントを事前に拡大します。 1。パフォーマンスの改善:最初のコンピレーションの後、後続の呼び出しを再コンパイルする必要はありません。 2。セキュリティの改善:許可制御を通じてデータテーブルアクセスを制限します。 3.複雑な操作の簡素化:複数のSQLステートメントを組み合わせて、アプリケーションレイヤーロジックを簡素化します。

MySQLクエリキャッシュの実用的な原則は、選択クエリの結果を保存することであり、同じクエリが再度実行されると、キャッシュされた結果が直接返されます。 1)クエリキャッシュはデータベースの読み取りパフォーマンスを改善し、ハッシュ値を使用してキャッシュされた結果を見つけます。 2)単純な構成、mysql構成ファイルでquery_cache_typeとquery_cache_sizeを設定します。 3)SQL_NO_CACHEキーワードを使用して、特定のクエリのキャッシュを無効にします。 4)高周波更新環境では、クエリキャッシュがパフォーマンスボトルネックを引き起こし、パラメーターの監視と調整を通じて使用するために最適化する必要がある場合があります。

MySQLがさまざまなプロジェクトで広く使用されている理由には、次のものがあります。1。複数のストレージエンジンをサポートする高性能とスケーラビリティ。 2。使いやすく、メンテナンス、シンプルな構成とリッチツール。 3。豊富なエコシステム、多数のコミュニティとサードパーティのツールサポートを魅了します。 4。複数のオペレーティングシステムに適したクロスプラットフォームサポート。

MySQLデータベースをアップグレードする手順には次のものがあります。1。データベースをバックアップします。2。現在のMySQLサービスを停止します。3。MySQLの新しいバージョンをインストールします。アップグレードプロセス中に互換性の問題が必要であり、Perconatoolkitなどの高度なツールをテストと最適化に使用できます。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

WebStorm Mac版
便利なJavaScript開発ツール

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター
