PostgreSQL Jenis Sambungan: Dalam, Luar, Kiri, Kanan

⚡ Ringkasan Cerdas

PostgreSQL Operasi JOIN mengambil dan menggabungkan baris dari dua tabel atau lebih menggunakan kunci bersama, dan mencakup inner join seperti theta, EQUI, dan natural, serta outer join yang mencakup hasil left, right, dan full.

  • 🔗 Combine: Fungsi JOIN menggabungkan kolom dari beberapa tabel berdasarkan kunci yang sama.
  • 🎯 Gabung Dalam: Inner join hanya mengembalikan baris yang memenuhi syarat join.
  • ⬅️ Gabung Kiri: LEFT OUTER JOIN mempertahankan setiap baris tabel sebelah kiri, menambahkan nilai NULL untuk baris sebelah kanan yang tidak cocok.
  • ➡️ Gabung Kanan: RIGHT OUTER JOIN mempertahankan setiap baris tabel sebelah kanan, menambahkan nilai NULL untuk baris sebelah kiri yang tidak cocok.
  • 🔵 Bergabung Penuh: FULL OUTER JOIN mengembalikan semua baris dari kedua tabel yang berisi nilai NULL jika tidak ada kecocokan.
  • 🤖 Bantuan AI: Asisten AI memilih jenis sambungan yang tepat dan menulis kondisi ON.

PostgreSQL Jenis Gabungan

Apa yang Bergabung di PostgreSQL?

PostgreSQL Bergabung Digunakan untuk mengambil data dari lebih dari satu tabel. Dengan JOIN, kita dapat menggabungkan pernyataan SELECT dan JOIN menjadi satu pernyataan. Kondisi JOIN ditambahkan ke pernyataan tersebut, dan semua baris yang memenuhi kondisi tersebut akan dikembalikan. Nilai dari tabel yang berbeda digabungkan berdasarkan kolom yang sama. Kolom yang sama biasanya adalah kunci utama di tabel pertama dan kunci asing di 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.

PostgreSQL Gabung Luar

Ada 3 jenis Gabungan Luar PostgreSQL:

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

PostgreSQL Gabung Luar Kiri

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:

PostgreSQL Gabung Luar Kiri

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.

PostgreSQL Gabung Luar Kanan

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:

PostgreSQL Gabung Luar Kanan

Semua baris dalam tabel Harga telah dikembalikan. Hanya baris dalam tabel Buku yang memenuhi kondisi penggabungan yang dikembalikan. Baris ke-3 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:

PostgreSQL Gabung Luar Penuh

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

Menggunakan pgAdmin

Tugas-tugas di atas dapat diselesaikan di pgAdmin sebagai berikut. Bagian-bagian berikut akan menjelaskan setiap jenis penggabungan langkah demi langkah.

pgAdmin Gabung Dalam

Langkah-langkah di bawah ini menunjukkan cara menjalankan setiap varian inner join di pgAdmin.

Cara Menggunakan Theta Gabung PostgreSQL menggunakan pgAdmin

Berikut adalah langkah-langkah untuk menggunakan Theta Join. PostgreSQL menggunakan pgAdmin:

Langkah 1) Masuk ke akun pgAdmin Anda

Buka pgAdmin dan Login menggunakan kredensial Anda

Langkah 2) Buat basis data Demo

  • Dari bilah navigasi di sebelah kiri- Klik Database.
  • 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)

  • Dari bilah navigasi di sebelah kiri- Klik Database.
  • 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)

  • Dari bilah navigasi di sebelah kiri- Klik Database.
  • 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)

  • Dari bilah navigasi di sebelah kiri- Klik Database.
  • 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

Selanjutnya, jalankan ketiga varian outer join di pgAdmin menggunakan langkah-langkah di bawah ini.

Gabung Luar Kiri

Langkah 1) Masuk ke akun pgAdmin Anda.

Langkah 2)

  • Dari bilah navigasi di sebelah kiri- Klik Database.
  • 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)

  • Dari bilah navigasi di sebelah kiri- Klik Database.
  • 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)

  • Dari bilah navigasi di sebelah kiri- Klik Database.
  • 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

Unduh Database yang digunakan dalam Tutorial ini

Pertanyaan Umum Demo Slot

INNER JOIN hanya mengembalikan baris yang cocok di kedua tabel. OUTER JOIN juga mempertahankan baris yang tidak cocok, mengisi kolom yang hilang dengan NULL, dan dapat berupa left, right, atau full tergantung pada tabel mana yang dipertahankan.

Perintah JOIN menggabungkan kolom dari tabel yang berbeda secara berdampingan menggunakan kunci pencocokan, sehingga memperlebar setiap baris. Perintah UNION menumpuk baris dari dua set hasil secara vertikal dan membutuhkan jumlah kolom yang sama.

Penggabungan mandiri (self join) menggabungkan sebuah tabel dengan dirinya sendiri menggunakan dua alias tabel. Ini berguna untuk membandingkan baris dalam satu tabel, seperti mencocokkan karyawan dengan manajer yang tersimpan dalam tabel yang sama.

CROSS JOIN mengembalikan hasil perkalian Kartesius, memasangkan setiap baris tabel pertama dengan setiap baris tabel kedua. Fungsi ini tidak menggunakan kondisi ON, sehingga dapat menghasilkan kumpulan hasil yang sangat besar dengan cepat.

Ya. Anda dapat menggabungkan beberapa klausa JOIN dalam satu kueri, menambahkan setiap tabel tambahan dengan kondisi JOIN dan ON yang berbeda. PostgreSQL mengevaluasi data tersebut untuk membangun satu set hasil gabungan.

Asisten AI seperti GitHub Copilot menyarankan tipe join yang tepat, menulis kondisi ON dari foreign key, dan menandai kondisi yang hilang yang dapat menyebabkan produk Cartesian yang tidak disengaja, sehingga mengurangi kesalahan join yang umum.

Ya. Asisten AI dapat membaca rencana kueri, merekomendasikan indeks pada kolom gabungan, dan menulis ulang urutan atau kondisi gabungan. Basis data tetap menegakkan kebenaran, jadi tinjau setiap saran sebelum menjalankannya di lingkungan produksi.

Tidak ada satu pun operasi join yang selalu tercepat; performa bergantung pada indeks, jumlah baris, dan filter. INNER JOIN pada kunci yang diindeks biasanya efisien, sedangkan FULL OUTER JOIN pada tabel besar yang tidak diindeks cenderung paling mahal.

Ringkaslah postingan ini dengan: