SELECT ステートメントの完全な構文は次のとおりです。 (7)選択 (8) DISTINCT <選択リスト> (1)<left_table>から (3)<結合タイプ> JOIN <右テーブル> (2)ON <結合条件> (4) WHERE <where_condition> (5) GROUP BY <group_by_list> (6) HAVING <having_condition> (9) ORDER BY <order_by_condition> (10) LIMIT <制限数> 注: 構文の前のシーケンス番号はSELECTの実行順序です MySQL の SELECT 実行順序は 10 のステップに分かれています。上記のように、最初に実行される操作は FROM 操作であり、最後に実行される操作は LIMIT 操作です。各操作では、処理の入力として使用される仮想テーブルが生成されます。これらの仮想テーブルはユーザーに対して透過的ですが、結果として返されるのは最後の仮想テーブルのみです。ステートメントに句が指定されていない場合、対応するステップはスキップされます。 クエリ処理の各段階を詳しく見てみましょう。 a.customer_id、COUNT(b.order_id) を total_orders として選択します。 テーブル1から LEFT JOIN テーブル2 AS b a.customer_id = b.customer_id の場合 ここで、a.city = 'hangzhou' GROUP BY a.customer_id count(b.order_id) < 2 である ORDER BY total_orders DESC; 1. FORM: FROM の左側のテーブルと右側のテーブルの直積を計算して、仮想テーブル VT1 を生成します。 2. ON: 仮想テーブル VT1 に対して ON フィルタリングを実行し、<join-condition> を満たす行のみが仮想テーブル VT2 に記録されます。 3. JOIN: OUTER JOIN(左結合、右結合など)が指定されている場合、保持テーブル内の一致しない行が外部行として仮想テーブル VT2 に追加され、仮想テーブル VT3 が生成されます。 4. WHERE: WHERE 条件に基づいて仮想テーブル VT3 をフィルタリングします。 <where-condition> を満たすレコードのみが仮想テーブル VT4 に挿入されます。 5. GROUP BY: group by 句の列に従って VT4 のレコードをグループ化し、VT5 を生成します。 6. HAVING: 仮想テーブル VT5 に HAVING フィルタリングを適用し、<having-condition> を満たすレコードのみが仮想テーブル VT6 に挿入されます。 7. SELECT: 選択操作を実行し、指定された列を選択して仮想テーブル VT7 に挿入します。 8. DISTINCT: VT7 内の重複レコードを削除します。仮想テーブル VT8 を生成します。 9. ORDER BY: 仮想テーブル VT8 内のレコードを <order_by_list> に従って並べ替えて、仮想テーブル VT9 を生成します。 10. LIMIT: 指定された行のレコードを取り出し、仮想テーブル VT10 を生成し、結果を返します。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Linux コマンドにおける Ctrl+z、Ctrl+c、Ctrl+d の違いと使い方
>>: JavaScript における変数と関数の昇格の詳細な例
この記事の例では、グラフィック検証コードを実装するためのVueプロジェクトの具体的なコードを参考まで...
ほとんどの人はMySQLをコンパイルしてシステムディレクトリに置きますが、私のやり方はコンパイルした...
最近、MySQL データベースを勉強していて、設定ファイルを頻繁に変更したため、MySQL データベ...
問題の説明最近、いくつかのマシンで、一日のさまざまな時間に次の警告メッセージが表示されました。 3月...
複数の値を組み合わせて表示これで、図1から図2に示す要件が揃いました。 どうやってやるんですか?次の...
目次概要1. アプリケーションレベルのミドルウェア2. 組み込みミドルウェア3. サードパーティミド...
外国のウェブサイトを開くと文字化けした文字が表示されることが多く、また、英語以外の外国のウェブサイト...
目次オブザーバーパターンとは何ですか?シナリオシミュレーションコードの実装コードのリファクタリング要...
目次01-イベントバブリング1.1- イベントバブリングの概要1.2-イベントバブリングの利用(イベ...
位置が絶対の場合、関連する属性のパーセンテージは、参照先の要素 (包含ブロック) を基準として計算さ...
目次cloneElementの役割使用シナリオ新しい小道具を追加するプロップを変更するイベントカスタ...
ffmpeg は非常に強力なオーディオおよびビデオ処理ツールです。公式 Web サイトは http:...
目次1. Gojsの実装1. 描画2. 破線の実装3. 点線を動かす2. 点線と点線アニメーションの...
序文MySQL データベースでは、if else のような判断演算を使用することがあります。では、M...
序文モバイル デバイスでは、帯域幅とプロセッサ速度の制限により、Web ページのパフォーマンスに対す...