MySQL ステートメントの書き込み順序と実行順序には大きな違いがあります。 書き順、mysql の一般的な書き順は次のとおりです。
ただし、実行順序は次のとおりです。
部分的な説明: 1. from: select * from table_1, table_2; 結果は select * from table_1 join table_2; と同じになります。どちらもデカルト積を求めるために使用されます。 これは、2 つのテーブルの直積を直接計算して、仮想テーブル VT1 を取得するために使用されます。これは、すべての SELECT ステートメントによって実行される最初の操作です。その他の操作はこのテーブルに対して実行され、これが from 操作によって完了します。 2. オン: VT1 テーブルから適格なデータをフィルタリングして VT2 テーブルを形成します。 3. 結合: この結合タイプのデータを VT2 テーブルに追加します。たとえば、左結合では、左テーブルの残りのデータが仮想テーブル VT2 に追加され、VT3 テーブルが形成されます。テーブルの数が 2 より大きい場合は、手順 1 ~ 3 が繰り返されます。 4. ここで、フィルターを実行して(集計関数は使用できません)、VT4 テーブルを取得します。 5. group by: VT4 テーブルをグループ化して VT5 テーブルを取得します。select や having などの後続の処理ステートメントで使用される列は、group by 条件に含める必要があります。含まれていない場合は、集計関数を使用する必要があります。 6. グループ化されたデータをフィルタリングして VT6 テーブルを取得します。 7. select: VT7 テーブルを取得するための列を返します。 8. distinctive: 重複を削除して VT8 テーブルを取得するために使用されます。 9. order by: VT9 テーブルをソートして取得するために使用されます。 10. limit: 必要な行数を返し、VT10 を取得します。 知らせ: グループ化条件では、各列は有効な列である必要があり、集計関数にすることはできません。 Null値もグループとして返されます。 集計関数を除き、SELECT 句内の列は、GROUP BY 条件に含まれている必要があります。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
>>: JavaScript によるデータ視覚化: ECharts マップの作成
一般的なアプリケーションでは、timestamp、datetime、int 型を使用して時間形式を保...
この記事では、Echartsを使用して3次元棒グラフを実装するVueの具体的なコードを参考までに共有...
この記事では、参考までにMySQLバックアップスクリプトを紹介します。具体的な内容は次のとおりです。...
1. Webデザイナーウォール 2. Veerleのブログ 3. チュートリアル9 4. UXブース...
目次序文グローバルロックテーブルロックテーブルロックメタデータ ロック (MDL ロック)要約する参...
目次利点1: diffアルゴリズムの最適化利点2: ホイスト静的静的リフティング利点3: cache...
目次DOMノード要素ノード:テキストノード:プロパティ ノード:要素を取得getElementByI...
半年もブログを書いていなかったので、少し恥ずかしいです... 正月休みは、Dota をプレイしたり ...
サンバの概要Samba は、Linux および UNIX システム上で SMB プロトコルを実装する...
SQLyog が MySQL に接続する際にエラー番号 1129 が発生します: mysql エラー...
この記事の例では、どこにでも移動できるフローティングボタンを実現するためのVueの具体的なコードを共...
目次トリガーとは何かトリガーを作成する表は次のようになります。さらにいくつかの単語を挙げます。制限と...
序文フロントエンドプログラミングでは、奇数、偶数などの数値を受け入れることができる nth-chil...
テーブルを美しくするために、行ごとに異なる境界線の色を設定できます。基本的な構文<TR 境界線...
従来のソフトウェアから Web ウェアへの段階的な移行の傾向の中で、デザイン パターンとテクノロジは...