MySql は結合テーブルクエリを使用しますが、初心者には理解しにくい場合があります。以下の記事では、MySQL ジョイント テーブル クエリの関連内容を詳しく紹介し、参考と学習のために共有します。一緒に詳しい紹介を見てみましょう。 リレーショナル データベースでは、テーブル間にさまざまな参照や関連付けが存在することは避けられません。これらの関連付けは、主キーと外部キーを組み合わせることによって形成されます。したがって、データを取得する場合、ほとんどの場合、単一のテーブルではニーズを満たすことができず、追加のデータにはクエリに他のテーブルを追加する必要があります。これが、JOIN キーワードによって完了する操作です。
複数のテーブルをクエリする場合は、JOIN キーワードを省略し、複数のテーブルをカンマで区切ることができます。この場合、デフォルトで INNER JOIN として扱われます。例えば、 テーブル1を選択します。*、 表2.* テーブル1から、 テーブル2; は以下と同等です: テーブル1を選択します。*、 表2.* テーブル1から テーブル2の内部結合;
コンマ形式を他の結合テーブル キーワードと組み合わせると、ON 条件などを通じて結合テーブル条件が指定されたときにエラーが報告されることに注意してください。
left_tblを選択します。* left_tbl から right_tbl を左結合し、 left_tbl.id = right_tbl.id にします。 right_tbl.id が NULL の場合; この方法を使用すると、条件を満たさない右側のテーブル内のレコードを簡単に除外できます。
t1.名前、t2.給与を選択します 従業員 AS t1 から info AS t2 に内部結合し、 t1.name = t2.name にします。 t1.名前、t2.給与を選択します 従業員 t1 から、情報 t2 を t1.name = t2.name に内部結合します。
SELECT * FROM (SELECT 1, 2, 3) AS t1;
a LEFT JOIN b USING (c1, c2, c3)
JOIN の例をいくつか示します。 テーブル1、テーブル2から*を選択します。 SELECT * FROM table1 INNER JOIN table2 ON table1.id = table2.id; SELECT * FROM table1 LEFT JOIN table2 ON table1.id = table2.id; SELECT * FROM table1 LEFT JOIN table2 USING (id); SELECT * FROM table1 LEFT JOIN table2 ON table1.id = table2.id table3 を table2.id = table3.id で左結合します。
次の例を考えてみましょう。 テーブル t1 (i INT、j INT) を作成します。 テーブル t2 (k INT, j INT) を作成します。 t1 VALUES(1, 1) に挿入します。 t2 VALUES(1, 1) に挿入します。 t1 から * を選択し、 t2 を自然結合します。 SELECT * FROM t1 JOIN t2 USING (j); クエリ結果:
同じ名前の列は結果に 1 回だけ表示され、すべて同じ値を持つレコードになります。 2 つのテーブルに新しいレコードを挿入して、それらの j を異なるものにし、テストします。 mysql> t1 に値 (2, 2) を挿入します。 クエリは正常、1 行が影響を受けました (0.00 秒) mysql> t2 に値 (2, 3) を挿入します。 クエリは正常、1 行が影響を受けました (0.00 秒) mysql> t1 から * を選択し、t2 を自然結合します。 +------+------+------+ | j | 私 | k | +------+------+------+ | 2 | 2 | 1 | +------+------+------+ セット内の 1 行 (0.00 秒)
a LEFT JOIN b USING (c1, c2, c3) a LEFT JOIN b は a.c1 = b.c1 かつ a.c2 = b.c2 かつ a.c3 = b.c3 で結合されます USING の場合の戻り値: 合体(a.c1, b.c1)、合体(a.c2, b.c2)、合体(a.c3, b.c3) ON は次を返します:
ON ステートメントでは、その操作テーブル (オペランド) 内のテーブルのみを参照できます。 テーブル t1 (i1 INT) を作成します。 テーブル t2 (i2 INT) を作成します。 テーブル t3 (i3 INT) を作成します。 上記のテーブルの場合、次のクエリはエラーを報告します。 mysql> SELECT * FROM t1 JOIN t2 ON (i1 = i3) JOIN t3; エラー 1054 (42S22): 'on 句' に不明な列 'i3' があります 次のクエリは機能します: mysql> SELECT * FROM t1 JOIN t2 JOIN t3 ON (i1 = i3); 空のセット (0.00 秒) なぜなら、現在 t3 は ON ステートメントの動作範囲内にあるからです。 関連リソース
要約する 以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。 以下もご興味があるかもしれません:
|
<<: Linux nslookup コマンドの使用方法の詳細な説明
>>: アイデアコンパイラvueインデントエラー問題シナリオの分析
序文nginx モジュールには、公式とサードパーティの 2 種類があります。nginx のインストー...
コードをコピーコードは次のとおりです。 <html xmlns="http://ww...
文法 背景: linear-gradient(direction,color-stop1,color...
前回の記事「202 個の無料高品質 XHTML テンプレート (1)」に続き、123WORDPRES...
目次序文質問原理テスト序文プログラムを作成するときに、読み込みの進行状況やアップロードの進行状況など...
この記事では、トランザクション、インデックス、ロックなどの MySQL の知識ポイントの原理と使用法...
MySQL データベースをバックアップするためのツールは多数あります。過去 2 日間で、C# を使用...
目次データベース接続数が急増した理由は何ですか? 1. はじめに2. 知識ポイント3. 練習するIV...
目次1.1. IP経由のコンテナ間のネットワークアクセス1.2. コンテナ名またはコンテナIDによる...
2.1、msiインストールパッケージ2.1.1、インストール特に重要なのは、インストール前に、元の ...
目次Samba サーバーの紹介Samba サーバー コンポーネントSamba サーバー関連の設定ファ...
インストールスクリプトUbuntu / CentOS Debian のインストールに問題があるようで...
目次ドヴァdvaの使用DVAの実装非同期をサポートルーターの実装成し遂げる:ドヴァdva は、red...
関連する知識ポイント親コンポーネントから子コンポーネントに値を渡す子コンポーネントから親コンポーネン...
私のは: <!DOCTYPE html>ブログガーデン: <!DOCTYPE HT...