PostgreSQL 結合タイプ:内側、外側、左、右
⚡ スマートサマリー
PostgreSQL 結合は、共有キーを使用して2つ以上のテーブルから行を取得して結合するもので、シータ結合、EQUI結合、ナチュラル結合などの内部結合に加え、左、右、および完全な結果をカバーする外部結合も含まれます。

結合とは PostgreSQL?
PostgreSQL ジョイン 複数のテーブルからデータを取得するために使用します。JOINを使用すると、SELECT文とJOIN文を1つの文にまとめることができます。JOIN条件が文に追加され、条件を満たすすべての行が返されます。異なるテーブルの値は、共通の列に基づいて結合されます。共通の列は、通常、最初のテーブルの主キーと2番目のテーブルの外部キーです。
PostgreSQL 結合の種類
結合には 2 種類あります PostgreSQL:
- 内部結合
- 外部結合
PostgreSQL 内部結合
内部結合には 3 種類あります PostgreSQL:
- シータ参加
- 自然結合
- EQUI結合
シータ結合
シータ結合を使用すると、シータで表される条件に基づいて 2 つのテーブルを結合できます。シータ結合はすべての比較演算子で機能します。ほとんどの場合、シータ結合は内部結合と呼ばれます。
シータ結合は、最も基本的なタイプの JOIN です。 JOIN 条件が満たされるテーブルからすべての行が返されます。
構文:
SELECT columns FROM table-1 INNER JOIN table-2 ON table-1.column = table-2.column;
デモ データベースの次のテーブルを検討してください。
本:
価格:
各書籍の名前と対応する価格を確認したい場合、次のコマンドを実行します。
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
次のように返されます。
結合条件を満たした行は 3 行だけでした。
EQUI結合
EQUI 結合は、主キーと外部キーの関係に基づいて XNUMX つのテーブルを結合する方法を提供します。 例えば:
SELECT * FROM Book JOIN Price ON Book.id = Price.id;
次のように返されます。
レコードは、共通の列、つまり id 列に基づいて両方のテーブルから返されました。
自然結合
このタイプの結合は、EQUI 結合を記述する別の方法を提供します。 以下に示すように NATURAL キーワードを追加することで、前の例を改善できます。
SELECT * FROM Book NATURAL JOIN Price;
次のように返されます。
ID 列が XNUMX つだけ返されました。 NATURAL JOIN では、id 列が XNUMX つのテーブルで共通であることがわかりました。 返品されたのはXNUMX枚だけでした。
PostgreSQL アウタージョイン
外部結合には 3 種類あります PostgreSQL:
- 左外部結合
- 右外部結合
- 完全外部結合
PostgreSQL 左外部結合
LEFT OUTER JOIN は、左側のテーブルのすべての行を返し、右側のテーブルでは結合条件が満たされた行のみを返します。
構文:
SELECT columns FROM table-1 LEFT OUTER JOIN table-2 ON table-1.column = table-2.column;
各書籍の名前と対応する価格を確認する必要があります。次のコマンドを実行します。
SELECT Book.name, Price.price FROM Book LEFT JOIN Price ON Book.id = Price.id;
これにより、次が返されます。
Book テーブルの 4 行すべてが返されました。 Price テーブルの 3 行のみが結合条件を満たしました。 したがって、彼らは返されました。 最後の本には対応する価格がありません。
PostgreSQL 右外部結合
RIGHT OUTER JOIN は、結合条件が満たされている右側のテーブル内のすべての行と左側のテーブル内の行を返します。
構文:
SELECT columns FROM table-1 RIGHT OUTER JOIN table-2 ON table-1.column = table-2.column;
具体的な例を挙げますと、以下の通りです。
SELECT Book.name, Price.price FROM Book RIGHT JOIN Price ON Book.id = Price.id;
これにより、次が返されます。
Priceテーブルのすべての行が返されました。Bookテーブルでは、結合条件を満たした行のみが返されました。3行目は一致する行が見つからなかったため、nameの値が空になっています。
完全外部結合 PostgreSQL
このタイプの JOIN は、結合条件が満たされない場合、左側のテーブルのすべての行と右側のテーブルのすべての行を null で返します。
構文:
SELECT columns FROM table-1 FULL OUTER JOIN table-2 ON table-1.column = table-2.column;
具体的な例を挙げますと、以下の通りです。
SELECT Book.name, Price.price FROM Book FULL OUTER JOIN Price ON Book.id = Price.id;
これにより、次が返されます。
すべてのテーブルのすべての行が返され、一致するものが見つからなかった場合は null が返されます。
pgAdminの使用
上記のタスクは、pgAdminで以下のように実行できます。以下のセクションでは、各結合タイプについて手順を追って説明します。
pgAdmin 内部結合
以下の手順は、pgAdminで各内部結合バリアントを実行する方法を示しています。
Theta の使い方 PostgreSQL pgAdminを使用する
Theta Join を使用する手順は以下のとおりです。 PostgreSQL pgAdminを使用して:
ステップ 1) pgAdmin アカウントにログインします。
pgAdmin を開き、資格情報を使用してログインします。
ステップ 2) デモデータベースを作成する
- 左側のナビゲーション バーで、[データベース] をクリックします。
- 「デモ」をクリックします。
ステップ 3) クエリを入力します
クエリ エディターに次のクエリを入力します。
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
ステップ 4) クエリを実行する
「実行」ボタンをクリックします
次のような結果が返されます。
EQUI結合
ステップ1) pgAdmin アカウントにログインします。
ステップ2)
- 左側のナビゲーション バーで、[データベース] をクリックします。
- 「デモ」をクリックします。
ステップ3) クエリ エディターにクエリを入力します。
SELECT * FROM Book JOIN Price ON Book.id = Price.id;
ステップ4) 「実行」ボタンをクリックします。
次のような結果が返されます。
自然結合
ステップ1) pgAdmin アカウントにログインします。
ステップ2)
- 左側のナビゲーション バーで、[データベース] をクリックします。
- 「デモ」をクリックします。
ステップ3) クエリ エディターにクエリを入力します。
SELECT * FROM Book NATURAL JOIN Price;
ステップ4) 「実行」ボタンをクリックします。
次のような結果が返されます。
pgAdmin 単純な内部結合
ステップ1) pgAdmin アカウントにログインします。
ステップ2)
- 左側のナビゲーション バーで、[データベース] をクリックします。
- 「デモ」をクリックします。
ステップ3) クエリ エディターにクエリを入力します。
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
ステップ4) 「実行」ボタンをクリックします。
次のような結果が返されます。
pgAdmin 外部結合
次に、以下の手順に従って、pgAdminで3つの外部結合バリアントを実行します。
左外部結合
ステップ1) pgAdmin アカウントにログインします。
ステップ2)
- 左側のナビゲーション バーで、[データベース] をクリックします。
- 「デモ」をクリックします。
ステップ3) クエリ エディターにクエリを入力します。
SELECT Book.name, Price.price FROM Book LEFT JOIN Price ON Book.id = Price.id;
ステップ4) 「実行」ボタンをクリックします。
次のような結果が返されます。
右外部結合
ステップ1) pgAdmin アカウントにログインします。
ステップ2)
- 左側のナビゲーション バーで、[データベース] をクリックします。
- 「デモ」をクリックします。
ステップ3) クエリ エディターにクエリを入力します。
SELECT Book.name, Price.price FROM Book RIGHT JOIN Price ON Book.id = Price.id;
ステップ4) 「実行」ボタンをクリックします。
次のような結果が返されます。
完全外部結合
ステップ1) pgAdmin アカウントにログインします。
ステップ2)
- 左側のナビゲーション バーで、[データベース] をクリックします。
- 「デモ」をクリックします。
ステップ3) クエリ エディターにクエリを入力します。
SELECT Book.name, Price.price FROM Book FULL OUTER JOIN Price ON Book.id = Price.id;
ステップ4) 「実行」ボタンをクリックします。
次のような結果が返されます。





























