さまざまな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 でローカルあいまい検索機能を実装する方法の例

推薦する

MySQL でファイルデータをインポートする際の 1290 エラーの解決方法

エラーシナリオcmd の mysql コマンドを使用して、学生情報テーブルにデータを追加します。デー...

ウェブ上でチャートを描くための 9 つの優れた JavaScript フレームワーク スクリプト

ウェブ上でチャートを描くための 9 つの優れた JavaScript フレームワーク スクリプト 1...

JS関数の呼び出し、適用、バインドの超詳細な方法

目次JS 関数呼び出し、適用、バインドメソッド1. call() メソッド1. call() メソッ...

MySql8.0以降のバージョンでROOTパスワードを正しく変更する方法

展開環境:インストールバージョン Red Hat Cent 7.0 MYSQL バージョン 8.0....

フロントエンドJSサンドボックスを実装するいくつかの方法についての簡単な説明

目次序文iframeはサンドボックスを実装しますdiffメソッドを使用したサンドボックスの実装プロキ...

h5入力ボックスプロンプト+通常のテキストボックスプロンプトを実装する方法

XML/HTML コードコンテンツをクリップボードにコピー<入力 id = "ユーザ...

スライド効果を実現するためのネイティブJavaScript

ページ、特にホームページを作成するときは、通常、Web サイト全体の他のメイン ページにリンクできる...

NginxはIP経由の直接アクセスを禁止し、カスタム500ページにリダイレクトします

設定ファイルに直接 サーバー{ listen 80 default; # IPへの直接アクセスを禁止...

HTML におけるメタの役割について (インターネットから収集および分類)

W3Cschoolではこのように説明しています<meta> 要素は、検索エンジン向けの説...

Vue は Websocket カスタマー サービス チャット機能を実装します

この記事では主に基本的なチャットの実装方法を紹介します。今後は絵文字や写真のアップロードなどの機能も...

LAMP ソースコードを使用したエンタープライズレベルのインストールチュートリアル

目次LAMPアーキテクチャ1.ランプの紹介2. WebサービスワークフローWebサーバーのリソースは...

mysql 簡単な操作例を表示

この記事では、例を挙げて mysql show 操作について説明します。ご参考までに、詳細は以下の通...

MySQL 8.0.12 解凍バージョンのインストールチュートリアル

この記事では、MySQL 8.0.12解凍版のインストールチュートリアルを参考までに紹介します。具体...

HTML テーブルタグチュートリアル (20): 行の背景色属性 BGCOLOR

BGCOLOR 属性を使用して、行の背景色を設定できます。基本的な構文<TR BGcolor...