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インデントエラー問題シナリオの分析
1. pytorch公式サイトから対応するインストールファイルをダウンロードします。 https:...
0 アイコンと画像の違いアイコンは文字であり、画像はバイナリ ストリームです。つまり、画像はアイコン...
以前にも紹介しました: docker (一般的なアプリケーションのデプロイ): docker dep...
1.1 nginxインストールパッケージとインストールスクリプトをクライアントにコピーし、スクリプト...
今日、入力イベントに関するブログ投稿を見て、気まぐれで関連情報を整理してみました。イベント:関数 c...
この記事では、ページ印刷の自動ページングを実現するためのVueの具体的なコードを例として紹介します。...
レンガを移動するプロセスでは、さまざまな環境および構成の問題があり、毎回異なるエラーが発生します。 ...
目次1. コンテンツの概要2. 文字セットと文字順序の概念と関係3. MySQL でサポートされてい...
1. パスワードを変更する1. 一般ユーザーのパスワードを変更する パスワード現在のパスワードを入力...
Seurat は、単一細胞解析用の重量級の R パッケージです。使用したことがある人なら誰でも、その...
Firefox の下位バージョンでは中国語の文字を入力できず、上位バージョンでは文字化けした文字が表...
vue+el-upload 複数ファイルの動的アップロード、参考までに具体的な内容は以下のとおりです...
HTML の一般的なコメント: <!--XXXXXXXX--> (XXXXXXXX はコ...
目次1. コンポーネントの紹介2. ソースコード分析2.1 テンプレート2.2 スクリプト2.3 実...
テーブルを切り捨てる個々の行の削除をログに記録せずに、テーブル内のすべての行を削除します。文法 テー...