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インデントエラー問題シナリオの分析
目次序文フラグメントの動機React Fragment の紹介と使用<React.Fragme...
<br />HTML 言語では、タグを使用してテーブルにタイトルを自動的に追加できます。...
1. setUp関数の最初のパラメータpropsセットアップ(プロパティ、コンテキスト){}最初のパ...
自動検出を行う際には、ポートなどの情報を取得してjson形式で返すスクリプトが必ず存在します。Red...
多くの場合、画像を表示する<a>タグのスタイルに遭遇しますが、タグ内にテキストがあり、そ...
jQueryプラグインは、参考のためにダッシュボードを実装します。具体的な内容は次のとおりです。一般...
目次1. MySQLレプリケーション関連の概念2. シンプルな1マスター1スレーブアーキテクチャの実...
目次1. MySQL 8.0.18のインストール2. 環境変数を設定する3. 接続テスト1. MyS...
このとき、overflow:auto;(コードがコンテナの境界を超えたときにスクロールボックスを表示...
a タグが新しいページを開くかどうか: (1)百度百科事典:ヘッダーが異なる場合は新しいページが開き...
この記事は主にMysqlの複数データベースのバックアップのコード例を紹介します。この記事ではサンプル...
vueの部分は以下のとおりです。 <テンプレート> <ビュークラス="&...
<br />今は情報爆発の時代であるだけでなく、サービス爆発の時代でもあります。それはす...
まず、GIF 操作を見てみましょう。ケース1: スペースがフィルタリングされるスペースの代わりに角括...
需要背景:ミニプログラムページに GIF ダイナミック画像を挿入しますが、GIF 画像は通常サイズが...