PostgreSQL Tipe Gabung dengan Contoh: Dalam, Luar, Kiri, Kanan

Apa yang Bergabung di PostgreSQL?

PostgreSQL Bergabung digunakan untuk mengambil data dari lebih dari satu tabel. Dengan Joins, kita dapat menggabungkan pernyataan SELECT dan JOIN menjadi satu pernyataan. Kondisi JOIN ditambahkan ke pernyataan, dan semua baris yang memenuhi kondisi dikembalikan. Nilai dari tabel berbeda digabungkan berdasarkan kolom umum. Kolom umum sebagian besar merupakan kunci utama pada tabel pertama dan kunci asing pada tabel kedua.

PostgreSQL Jenis Gabungan

Ada dua jenis Gabungan PostgreSQL:

  • Inner Bergabung
  • Gabungan Luar

PostgreSQL Gabung Batin

Ada 3 jenis Inner Joins PostgreSQL:

  • Theta bergabung
  • Gabungan alami
  • EQUI bergabung

Gabung Theta

Gabungan theta memungkinkan seseorang untuk menggabungkan dua tabel berdasarkan kondisi yang diwakili oleh theta. Gabungan Theta dapat bekerja dengan semua operator pembanding. Dalam kebanyakan kasus, gabungan theta disebut sebagai gabungan dalam.

Gabung theta adalah tipe GABUNG yang paling dasar. Ini akan mengembalikan semua baris dari tabel di mana kondisi GABUNG terpenuhi.

sintaks:

SELECT columns
FROM table-1 
INNER JOIN table-2
ON table-1.column = table-2.column;

Pertimbangkan tabel berikut dari database Demo:

Book:

PostgreSQL Gabung Theta

Harga:

PostgreSQL Gabung Theta

Kita ingin melihat nama setiap buku dan harganya. Kita dapat menjalankan perintah berikut:

SELECT Book.name, Price.price 
FROM Book 
INNER JOIN Price 
ON Book.id = Price.id;   

Ini akan mengembalikan hal berikut:

PostgreSQL Gabung Theta

Hanya 3 baris yang memenuhi kondisi gabungan.

Bergabunglah dengan EQUI

Gabungan EQUI memberi kita cara untuk menggabungkan dua tabel berdasarkan hubungan kunci utama/kunci asing. Misalnya:

SELECT *
FROM Book 
JOIN Price ON Book.id = Price.id;

Ini akan mengembalikan hal berikut:

PostgreSQL Bergabunglah dengan EQUI

Catatan telah dikembalikan dari kedua tabel berdasarkan kolom umum, yaitu kolom id.

Bergabung Alami

Jenis gabungan ini memberi kita cara lain untuk menulis gabungan EQUI. Kita dapat memperbaiki contoh sebelumnya dengan menambahkan kata kunci ALAMI seperti yang ditunjukkan di bawah ini:

SELECT *
FROM Book
NATURAL JOIN Price;

Ini akan mengembalikan hal berikut:

PostgreSQL Bergabung Alami

Hanya satu kolom id yang dikembalikan. NATURAL JOIN dapat mencatat bahwa kolom id adalah umum di kedua tabel. Hanya satu yang dikembalikan.

Gabungan Luar Postgres

Ada 3 jenis Gabungan Luar PostgreSQL:

  • Gabung Luar Kiri
  • Gabung Luar Kanan
  • Gabung Luar Penuh

Gabung Luar Kiri Postgres

LEFT OUTER JOIN akan mengembalikan semua baris pada tabel di sisi kiri dan hanya baris di tabel sebelah kanan yang kondisi joinnya telah terpenuhi.

sintaks:

SELECT columns
FROM table-1
LEFT OUTER JOIN table-2
ON table-1.column = table-2.column;

Kita perlu melihat nama setiap buku dan harganya. Kita dapat menjalankan perintah berikut:

SELECT Book.name, Price.price 
FROM Book   
LEFT JOIN Price 
ON Book.id = Price.id;   

Ini mengembalikan yang berikut:

Gabung Luar Kiri Postgres

Semua 4 baris dalam tabel Buku telah dikembalikan. Hanya 3 baris dari tabel Harga yang memenuhi kondisi gabungan. Oleh karena itu mereka dikembalikan. Buku terakhir tidak memiliki nilai harga yang sesuai.

Gabung Luar Kanan Postgres

RIGHT OUTER JOIN mengembalikan semua baris pada tabel di sisi kanan dan baris pada tabel di sisi kiri dimana kondisi join telah terpenuhi.

sintaks:

SELECT columns
FROM table-1
RIGHT OUTER JOIN table-2
ON table-1.column = table-2.column;

Sebagai contoh:

SELECT Book.name, Price.price 
FROM Book
RIGHT JOIN Price 
ON Book.id = Price.id;

Ini mengembalikan yang berikut:

Gabung Luar Kanan Postgres

Semua baris dalam tabel Harga telah dikembalikan. Hanya baris dalam tabel Buku yang memenuhi kondisi gabungan yang dikembalikan. 3rd baris tidak memiliki nilai untuk nama karena tidak ditemukan kecocokan.

Gabung Luar Penuh PostgreSQL

Jenis JOIN ini akan mengembalikan semua baris pada tabel di sisi kiri dan semua baris pada tabel di sisi kanan dengan nol jika kondisi join tidak terpenuhi.

sintaks:

SELECT columns
FROM table-1
FULL OUTER JOIN table-2
ON table-1.column = table-2.column;

Sebagai contoh:

SELECT Book.name, Price.price 
FROM Book
FULL OUTER JOIN Price 
ON Book.id = Price.id;

Ini mengembalikan yang berikut:

Gabung Luar Penuh Postgres

Semua baris dari semua tabel telah dikembalikan, dengan nol jika tidak ditemukan kecocokan.

Menggunakan pgAdmin

Tugas di atas dapat diselesaikan di pgAdmin sebagai berikut:

pgAdmin Gabung Dalam

Cara Menggunakan Theta Gabung PostgreSQL menggunakan pgAdmin

Berikut langkah-langkah menggunakan Theta Join di Postgres menggunakan pgAdmin:

Langkah 1) Masuk ke akun pgAdmin Anda

Buka pgAdmin dan Login menggunakan kredensial Anda

Langkah 2) Buat basis data Demo

  1. Dari bilah navigasi di sebelah kiri- Klik Database.
  2. Klik Demo.

pgAdmin Gabung Dalam

Langkah 3) Ketikkan kueri

Ketik kueri di bawah ini di editor kueri:

SELECT Book.name, Price.price 
FROM Book 
INNER JOIN Price 
ON Book.id = Price.id;   

Langkah 4) Jalankan kueri

Klik tombol Jalankan

pgAdmin Gabung Dalam

Seharusnya mengembalikan hal berikut:

pgAdmin Gabung Dalam

Bergabunglah dengan EQUI

Langkah 1) Masuk ke akun pgAdmin Anda.

Langkah 2)

  1. Dari bilah navigasi di sebelah kiri- Klik Database.
  2. Klik Demo.

pgAdmin EQUI Gabung

Langkah 3) Ketik kueri di editor kueri:

SELECT *
FROM Book 
JOIN Price ON Book.id = Price.id;

Langkah 4) Klik tombol Jalankan.

pgAdmin EQUI Gabung

Seharusnya mengembalikan hal berikut:

pgAdmin EQUI Gabung

Bergabung Alami

Langkah 1) Masuk ke akun pgAdmin Anda.

Langkah 2)

  1. Dari bilah navigasi di sebelah kiri- Klik Database.
  2. Klik Demo.

pgAdmin Gabung Alami

Langkah 3) Ketik kueri di editor kueri:

SELECT *
FROM Book 
NATURAL JOIN Price;

Langkah 4) Klik tombol Jalankan.

pgAdmin Gabung Alami

Seharusnya mengembalikan hal berikut:

pgAdmin Gabung Alami

pgAdmin Gabung Batin Sederhana

Langkah 1) Masuk ke akun pgAdmin Anda.

Langkah 2)

  1. Dari bilah navigasi di sebelah kiri- Klik Database.
  2. Klik Demo.

pgAdmin Gabung Batin Sederhana

Langkah 3) Ketik kueri di editor kueri:

SELECT Book.name, Price.price 
FROM Book 
INNER JOIN Price 
ON Book.id = Price.id;   

Langkah 4) Klik tombol Jalankan.

pgAdmin Gabung Batin Sederhana

Seharusnya mengembalikan hal berikut:

pgAdmin Gabung Batin Sederhana

pgAdmin Gabung Luar

Gabung Luar Kiri

Langkah 1) Masuk ke akun pgAdmin Anda.

Langkah 2)

  1. Dari bilah navigasi di sebelah kiri- Klik Database.
  2. Klik Demo.

pgAdmin Gabung Luar Kiri

Langkah 3) Ketik kueri di editor kueri:

SELECT Book.name, Price.price 
FROM Book   
LEFT JOIN Price 
ON Book.id = Price.id;   

Langkah 4) Klik tombol Jalankan.

pgAdmin Gabung Luar Kiri

Seharusnya mengembalikan hal berikut:

pgAdmin Gabung Luar Kiri

Gabung Luar Kanan

Langkah 1) Masuk ke akun pgAdmin Anda.

Langkah 2)

  1. Dari bilah navigasi di sebelah kiri- Klik Database.
  2. Klik Demo.

pgAdmin Gabung Luar Kanan

Langkah 3) Ketik kueri di editor kueri:

SELECT Book.name, Price.price 
FROM Book
RIGHT JOIN Price 
ON Book.id = Price.id;

Langkah 4) Klik tombol Jalankan.

pgAdmin Gabung Luar Kanan

Seharusnya mengembalikan hal berikut:

pgAdmin Gabung Luar Kanan

Gabung Luar Penuh

Langkah 1) Masuk ke akun pgAdmin Anda.

Langkah 2)

  1. Dari bilah navigasi di sebelah kiri- Klik Database.
  2. Klik Demo.

pgAdmin Gabung Luar Penuh

Langkah 3) Ketik kueri di editor kueri:

SELECT Book.name, Price.price 
FROM Book
FULL OUTER JOIN Price 
ON Book.id = Price.id;

Langkah 4) Klik tombol Jalankan.

pgAdmin Gabung Luar Penuh

Seharusnya mengembalikan hal berikut:

pgAdmin Gabung Luar Penuh

Ringkasan

  • In PostgreSQL, kami menggunakan GABUNG ketika kami perlu mengambil nilai dari lebih dari satu tabel.
  • INNER JOIN adalah tipe JOIN yang paling dasar. Ia mengembalikan semua catatan di mana kondisi GABUNG yang ditentukan terpenuhi.
  • LEFT OUTER JOIN mengembalikan semua baris di tabel sebelah kiri dan hanya baris di tabel lain yang kondisi joinnya telah terpenuhi.
  • RIGHT OUTER JOIN mengembalikan semua baris di tabel sebelah kanan dan hanya baris di tabel lain yang kondisi joinnya telah dipenuhi.
  • Jenis JOIN ini mengembalikan semua baris di tabel sebelah kiri dan semua baris di tabel sebelah kanan dengan null yang kondisi joinnya tidak terpenuhi.

Unduh Database yang digunakan dalam Tutorial ini