さまざまなSQL結合を簡単に学ぶ

さまざまなSQL結合を簡単に学ぶ

SQL JOIN 句は、テーブル間の共通フィールドに基づいて 2 つ以上のテーブルの行を結合するために使用されます。

最も一般的な JOIN タイプは、SQL INNER JOIN (単純 JOIN)、SQL LEFT JOIN、SQL RIGHT JOIN、SQL FULL JOIN です。前者は内部結合で、後者の 3 つは外部結合です。

2 つのテーブルがあり、テーブル A が左側のテーブルで、テーブル B が右側のテーブルであるとします。

id名前
1グーグル
2タオバオ
3微博
4フェイスブック
id住所
1アメリカ合衆国
5中国
3中国
6アメリカ合衆国

内部結合

内部結合は最も一般的な結合タイプであり、一致する行のみを結合します。

内部結合構文

列名を選択
表1より
INNER JOIN テーブル 2
の上
テーブル 1.列名 = テーブル 2.列名

: INNER JOINはJOINと同じです

INNER JOIN によって生成される結果セットは、1 と 2 の積集合です。

テーブルAから*を選択し、テーブルBを内部結合する
表A.id=表B.id

上記の SQL を実行した場合の出力は次のようになります。

id名前住所
1グーグルアメリカ合衆国
3微博中国

左結合

LEFT JOIN は、左側のテーブルのすべての行と、ON 条件を満たす右側のテーブルの行を返します。左側のテーブルの行が右側のテーブルと一致しない場合、この行に対応する右側のテーブルのデータは NULL に置き換えられます。

LEFT JOIN 構文

列名を選択
表1より
LEFT JOIN テーブル 2
ON テーブル 1.列名 = テーブル 2.列名

注: 一部のデータベースでは、LEFT JOINはLEFT OUTER JOINと呼ばれます。

LEFT JOIN はテーブル 1 の完全なセットを生成し、一致するものがない場合、テーブル 2 の一致する値は null 値に置き換えられます。

テーブルAから*を選択し、テーブルBを左結合する
表A.id=表B.id

上記の SQL を実行した場合の出力は次のようになります。

id名前住所
1グーグルアメリカ合衆国
2タオバオヌル
3微博中国
4フェイスブックヌル

右結合

RIGHT JOIN は、右側のテーブルのすべての行と、ON 条件を満たす左側のテーブルの行を返します。右側のテーブルの行が左側のテーブルと一致しない場合、左側のテーブルの対応するデータは NULL に置き換えられます。

RIGHT JOIN 構文

列名を選択
表1より
テーブル2を右結合
ON テーブル 1.列名 = テーブル 2.列名

注: 一部のデータベースでは、RIGHT JOIN は RIGHT OUTER JOIN と呼ばれます。

RIGHT JOIN はテーブル 2 の完全なセットを生成し、一致するものがない場合、テーブル 1 の一致する値は null 値に置き換えられます。

テーブルAから*を選択し、テーブルBを右結合する
表A.id=表B.id

上記の SQL を実行した場合の出力は次のようになります。

id名前住所
1グーグルアメリカ合衆国
5ヌル中国
3微博中国
6ヌルアメリカ合衆国

完全外部結合

FULL JOIN は、左側のテーブルと右側のテーブルの両方からすべての行を返します。一方のテーブルの行にもう一方のテーブルに一致する行がない場合、反対の行は NULL に置き換えられます。

FULL OUTER JOIN 構文

列名を選択
表1より
FULL OUTER JOIN テーブル 2
ON テーブル 1.列名 = テーブル 2.列名

FULL OUTER JOIN は 1 と 2 の結合を生成します。ただし、一致しないレコードの場合、値として null が使用されることに注意してください。

テーブルAから*を選択し、テーブルBを完全外部結合する
表A.id=表B.id

上記の SQL を実行した場合の出力は次のようになります。

id名前住所
1グーグルアメリカ合衆国
2タオバオヌル
3微博中国
4フェイスブックヌル
5ヌル中国
6ヌルアメリカ合衆国

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • SQL と MySQL のステートメント実行順序の分析
  • SQL文の実行順序の詳細な説明
  • SQL文の実行順序の図による説明
  • SQL Server での SELECT ステートメントの実行順序
  • SQL SELECT文の完全な実行シーケンス
  • MySQLにおける(JOIN/ORDER BY)文のクエリ処理と最適化方法
  • SQL 結合クエリの内部結合、外部結合、クロス結合の違いの詳細な説明
  • MySQL の左結合操作における on 条件と where 条件の違いの紹介
  • SQL の左結合と on および where 条件キーワードの違いの詳細な説明
  • MySQL の複数の左結合クエリの使用状況の分析

<<:  Windowsタイムサーバーの設定方法の詳しい説明

>>:  フロントエンド JavaScript でローカルあいまい検索機能を実装する方法の例

推薦する

Navicatを使用してクラウドサーバーデータベースにリモート接続する方法

秘密鍵を開かずにリモート サーバーのデータベースに接続するのは非常に便利です。新しい接続でデータを入...

EXPLAIN を使って MySQL の SQL 実行プランを分析する方法

序文MySQL では、EXPLAIN コマンドを使用して、テーブルの接続方法や SELECT ステー...

json.stringify() と json.parse() の違いと使い方

1. JSON.stringify() と JSON.parse() の違い私たちは皆、JSON.s...

Webデザインチュートリアル(2):模倣と盗作について

<br />前回の記事では、Webデザインの手順と方法を紹介しました。詳細については、前...

after疑似要素を使用して中空の三角矢印とXアイコンを実装する例

フロントエンドのデザイン案では、「X」や「>」の形をした閉じるボタンや、他の 3 方向の白抜き...

js のマクロタスクとマイクロタスクについての簡単な説明

目次1. JavaScriptについて2. JavaScript イベントループ3. マクロタスクと...

el-table のテーブルを最適化するために仮想リストを使用する方法についての簡単な説明

目次序文解決具体的な実装満たすべき前提条件質問序文テーブルをよく使用します。データ量が多い場合は直接...

Vueはキャンバスの手書き入力を使用して中国語を認識します

効果画像: 序文:最近、屋外の大画面プロジェクトに取り組んでいました。システムの入力方法は使いにくか...

商品クエリ機能を実現するJavaScript

この記事の例では、商品検索機能を実現するためのJavaScriptの具体的なコードを参考までに共有し...

MySQLデータベースパラダイムの詳細な説明

序文:データベースパラダイムについてはよく耳にしていましたが、詳細まで理解したことはありませんでした...

React における ref の一般的な使用法の概要

目次Refsとは何か1. 文字列型参照2. コールバック参照React.createRef() 4....

Windows Server 2019 のセットアップ方法 (画像とテキスト付き)

1. Windows Server 2019 のインストールVmware に Windows Se...

CSSを使用してHTMLテキストボックス内のテキストの垂直方向の中央を制御する

Text の height 属性が定義されている場合、Text に入力されたテキストは垂直方向に中央...

MySQL innodb_autoinc_lock_mode について

innodb_autoinc_lock_mode パラメータは、auto_increment 列を持...

Vueは小さなフォーム検証機能を実装します

この記事では、フォーム検証を実装するためのVueの具体的なコードを例として紹介します。具体的な内容は...