Gabung Mandiri SQL

Gabung Mandiri Sql



Salah satu fitur paling terkenal dari database relasional adalah gabungan. Gabungan adalah salah satu fitur database relasional yang paling kuat dan kompleks. Mereka memungkinkan modularitas yang luas dan hubungan yang sangat kompleks antara tabel database tanpa mengurangi performa.

Namun, ada jenis join di SQL yang cenderung tidak terdeteksi, yang dikenal sebagai self-join.

Dalam SQL, self-join adalah teknik ampuh yang memungkinkan kita menggabungkan baris dari tabel yang sama berdasarkan kolom terkait dalam tabel yang sama.







Berbeda dengan jenis gabungan lainnya di SQL di mana kita mengambil data dari beberapa tabel, gabungan mandiri berfungsi pada satu tabel.



Anda mungkin bertanya-tanya, mengapa saya memerlukan self-join ketika saya bisa mencari data dari tabel itu sendiri? Meskipun hal tersebut mungkin benar, penggabungan mandiri dapat membantu tugas saat Anda perlu melakukan kueri data rekursif atau menemukan data hierarki.



Pada dasarnya, self-join memainkan peran mendasar ketika Anda perlu membandingkan baris-baris tabel yang sama.





Bergabunglah dengan kami di postingan ini saat kami menjelajahi apa itu self-join, cara kerjanya, dan bagaimana kami dapat menggunakannya dalam tabel SQL.

CATATAN: Sebelum kita mendalaminya, kita akan menyiapkan tabel dasar untuk tujuan demonstrasi. Namun, Anda sebaiknya menggunakan kumpulan data apa pun yang didukung.



Contoh data

Kueri berikut membuat tabel dasar yang berisi informasi produk dan menyisipkan rekaman sampel ke dalam tabel. Hal ini memungkinkan kita untuk mendemonstrasikan cara bekerja dengan self-join di SQL.

BUAT TABEL Produk (
product_id INT KUNCI UTAMA,
nama_produk VARCHAR(255) BUKAN NULL,
induk_id INT
);

Tambahkan 10 catatan sampel ke dalam tabel.

MASUKKAN KE NILAI Produk (id_produk, nama_produk, id_induk).
(1, 'Elektronik', BATAL),
(2, 'Ponsel Cerdas', 1),
(3, 'Laptop', 1),
(4, 'iPhone 13', 2),
(5, 'Samsung Galaxy S21', 2),
(6, 'MacBook Pro', 3),
(7, 'Dell XPS 15', 3),
(8, 'Aksesori', NULL),
(9, 'Kasus Telepon', 8),
(10, 'Tas Laptop', 8);

Tabel yang dihasilkan adalah sebagai berikut:

Contoh 1: Gabung Mandiri Dasar

Mari kita mulai dengan self-join dasar. Misalnya, kita bisa menggunakan self-join sederhana untuk mengambil hubungan induk-anak dari tabel yang sama.

Misalnya, kita dapat menggunakannya untuk menemukan semua produk dan produk induknya yang sesuai. Kita dapat menjalankan query sebagai berikut:

PILIH c.nama_produk SEBAGAI produk_anak, p.nama_produk SEBAGAI produk_induk
DARI Produk c
KIRI GABUNG Produk p ON c.parent_id = p.product_id;

Dalam contoh query yang diberikan, kami menggunakan “c” sebagai alias untuk tabel produk yang mewakili produk turunan.

Kami juga membuat alias “p” untuk tabel produk untuk mewakili produk induk.

Pada langkah berikutnya, kami menggunakan SQL LEFT JOIN dasar untuk memastikan bahwa produk tingkat teratas disertakan dalam hasilnya.

Terakhir, kami menggunakan klausa ON untuk membuat hubungan antara catatan anak dan induk menggunakan kolom “parent_id” dan “product_id”.

Tabel yang dihasilkan adalah sebagai berikut:

Anda akan melihat bahwa produk induk tidak memiliki tautan teratas karena mereka berada di puncak hierarki yang juga dikenal sebagai elemen akar.

Contoh 2: Ambil Data Hierarki

Salah satu peran paling mendasar dari self-join adalah mengambil data hierarki. Misalnya, kita ingin mengambil semua produk turunan yang produknya sama dengan “Aksesori”. Kita dapat menjalankan query menggunakan self-join sebagai berikut:

PILIH c.nama_produk SEBAGAI produk_anak
DARI Produk c
GABUNG Produk p ON c.parent_id = p.product_id
WHERE p.nama_produk = 'Aksesori';

Dalam kasus ini, kita menggunakan JOIN untuk menggabungkan tabel produk dengan tabel itu sendiri dan kemudian menggunakan klausa WHERE untuk memfilter hasil yang kita inginkan.

Kesimpulan

Dalam tutorial ini, kita menjelajahi apa itu self-join, cara kerjanya, dan bagaimana kita bisa menggunakannya dalam tabel SQL untuk mengambil data hierarki atau melakukan kueri rekursif.