Traffine I/O

Bahasa Indonesia

2023-03-04

SQL Joins

Apa itu SQL Joins

SQL (Structured Query Language) adalah bahasa pemrograman yang digunakan untuk mengelola database relasional. Salah satu fitur utama dari SQL adalah kemampuan untuk melakukan penggabungan tabel untuk mengekstrak data yang bermakna. SQL join menggabungkan baris dari dua atau lebih tabel berdasarkan kolom terkait di antara mereka.

Ada beberapa jenis SQL join, masing-masing dengan kasus penggunaan yang spesifik. Jenis SQL join yang paling umum digunakan antara lain:

  • Inner Join
    Inner join mengembalikan hanya baris yang memiliki kecocokan pada kedua tabel yang digabungkan. Ini adalah jenis join yang paling sering digunakan dalam SQL.

  • Left Join
    Left join mengembalikan semua baris dari tabel kiri dan baris yang cocok dari tabel kanan. Jika tidak ada baris yang cocok dalam tabel kanan, maka hasilnya akan berisi NULL pada kolom tersebut.

  • Right Join
    Right join mengembalikan semua baris dari tabel kanan dan baris yang cocok dari tabel kiri. Jika tidak ada baris yang cocok dalam tabel kiri, maka hasilnya akan berisi NULL pada kolom tersebut.

  • Outer Join
    Outer join mengembalikan semua baris dari kedua tabel dan di mana tidak ada kecocokan, hasilnya akan berisi NULL pada kolom tersebut.

Inner Join

Inner Join dalam SQL digunakan untuk menggabungkan baris dari dua atau lebih tabel ke dalam satu set hasil berdasarkan kondisi kecocokan di antara mereka. Inner join hanya mengembalikan baris yang memiliki kecocokan di kedua tabel yang digabungkan. Dengan kata lain, inner join mengeliminasi baris yang tidak cocok dari kedua tabel.

Syntaks Inner Join

Syntax untuk inner join dalam SQL adalah sebagai berikut:

sql
SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;

Dalam sintaks di atas, column_name(s) mewakili kolom yang ingin Anda pilih dari tabel yang digabungkan. Table1 dan table2 mewakili tabel yang ingin Anda gabungkan, dan column_name mewakili kolom yang umum di antara keduanya.

Contoh Inner Join

Misalkan ada dua tabel, Customers dan Orders, di mana tabel Customers berisi informasi tentang pelanggan dan tabel Orders berisi informasi tentang pesanan mereka. Kita dapat menggunakan inner join untuk menggabungkan tabel-tabel ini dan mengekstrak wawasan yang berguna dari mereka.

Tabel Customers:

CustomerID CustomerName ContactName Country
1 Alfreds Maria Germany
2 Ana Trujillo Ana Mexico
3 Antonio Antonio Mexico
4 Around the Thomas UK
5 Berglunds Christina Sweden

tabel Orders:

OrderID CustomerID OrderDate
1 3 2022-03-10
2 5 2022-03-12
3 2 2022-03-15
4 3 2022-03-18
5 1 2022-03-20

Untuk mengekstrak nama pelanggan, nama kontak, dan tanggal pesanan, kita dapat menggunakan inner join sebagai berikut:

sql
SELECT Customers.CustomerName, Customers.ContactName, Orders.OrderDate
FROM Customers
INNER JOIN Orders
ON Customers.CustomerID = Orders.CustomerID;

Keluaran dari kueri SQL di atas akan menjadi:

CustomerName ContactName OrderDate
Ana Trujillo Ana 2022-03-15
Antonio Antonio 2022-03-10
Antonio Antonio 2022-03-18
Alfreds Maria 2022-03-20
Berglunds Christina 2022-03-12

Left Join

Left Join dalam SQL digunakan untuk menggabungkan baris dari dua atau lebih tabel menjadi satu set hasil berdasarkan kondisi pencocokan antara mereka. Left join mengembalikan semua baris dari tabel kiri dan baris yang cocok dari tabel kanan. Jika tidak ada baris yang cocok dalam tabel kanan, maka hasilnya akan berisi NULL pada kolom-kolom tersebut.

Sintaks Left Join

Sintaks untuk left join dalam SQL adalah sebagai berikut:

sql
SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name;

Contoh Left Join

Tabel Customers:

CustomerID CustomerName ContactName Country
1 Alfreds Maria Germany
2 Ana Trujillo Ana Mexico
3 Antonio Antonio Mexico
4 Around the Thomas UK
5 Berglunds Christina Sweden

tabel Orders:

OrderID CustomerID OrderDate
1 3 2022-03-10
2 5 2022-03-12
3 2 2022-03-15
4 3 2022-03-18
5 1 2022-03-20

Untuk mengekstrak nama pelanggan, nama kontak, dan tanggal pesanan, kita dapat menggunakan left join sebagai berikut:

sql
SELECT Customers.CustomerName, Customers.ContactName, Orders.OrderDate
FROM Customers
LEFT JOIN Orders
ON Customers.CustomerID = Orders.CustomerID;

Keluaran dari kueri SQL di atas akan menjadi:

CustomerName ContactName OrderDate
Alfreds Maria 2022-03-20
Ana Trujillo Ana 2022-03-15
Antonio Antonio 2022-03-10
Antonio Antonio 2022-03-18
Around the Thomas NULL
Berglunds Christina 2022-03-12

Pada output di atas, kita dapat melihat bahwa left join mengembalikan semua baris dari tabel Customers, termasuk baris yang tidak memiliki baris terkait di tabel Orders. Dalam hal ini, kolom OrderDate akan berisi NULL.

Right Join

Right Join dalam SQL digunakan untuk menggabungkan baris dari dua atau lebih tabel ke dalam satu set hasil berdasarkan kondisi yang sesuai di antara mereka. Right join mengembalikan semua baris dari tabel kanan dan baris yang cocok dari tabel kiri. Jika tidak ada baris yang cocok di tabel kiri, maka hasilnya akan berisi NULL pada kolom tersebut.

Sintaks Right Join

Sintaks untuk right join dalam SQL adalah sebagai berikut:

sql
SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name = table2.column_name;

Contoh Right Join

Tabel Customers:

CustomerID CustomerName ContactName Country
1 Alfreds Maria Germany
2 Ana Trujillo Ana Mexico
3 Antonio Antonio Mexico
4 Around the Thomas UK
5 Berglunds Christina Sweden

tabel Orders:

OrderID CustomerID OrderDate
1 3 2022-03-10
2 5 2022-03-12
3 2 2022-03-15
4 3 2022-03-18
5 1 2022-03-20

Untuk mengekstrak nama pelanggan, nama kontak, dan tanggal pesanan, kita dapat menggunakan right join sebagai berikut:

sql
SELECT Customers.CustomerName, Customers.ContactName, Orders.OrderDate
FROM Customers
RIGHT JOIN Orders
ON Customers.CustomerID = Orders.CustomerID;

Keluaran dari kueri SQL di atas akan menjadi:

CustomerName ContactName OrderDate
Alfreds Maria 2022-03-20
Ana Trujillo Ana 2022-03-15
Antonio Antonio 2022-03-10
Antonio Antonio 2022-03-18
NULL NULL 2022-03-12

Pada keluaran di atas, dapat dilihat bahwa outer join mengembalikan semua baris dari kedua tabel, termasuk yang tidak memiliki pasangan di tabel lainnya. Dalam kasus ini, kolom-kolom seperti CustomerName, ContactName, dan OrderDate akan berisi nilai NULL.

Outer Join

Outer Join pada SQL digunakan untuk menggabungkan baris dari dua atau lebih tabel menjadi satu set hasil berdasarkan kondisi yang cocok antara mereka. Outer Join mengembalikan semua baris dari kedua tabel dan di mana tidak ada yang cocok, maka hasilnya akan berisi nilai NULL pada kolom-kolom tersebut.

Sintaks Outer Join

Berikut adalah sintaks untuk outer join pada SQL:

sql
SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name = table2.column_name;

Contoh Outer Join

Tabel Customers:

CustomerID CustomerName ContactName Country
1 Alfreds Maria Germany
2 Ana Trujillo Ana Mexico
3 Antonio Antonio Mexico
4 Around the Thomas UK
5 Berglunds Christina Sweden

tabel Orders:

OrderID CustomerID OrderDate
1 3 2022-03-10
2 5 2022-03-12
3 2 2022-03-15
4 3 2022-03-18
5 1 2022-03-20

Untuk mengekstrak nama pelanggan, nama kontak, dan tanggal pesanan, kita dapat menggunakan outer join sebagai berikut:

sql
SELECT Customers.CustomerName, Customers.ContactName, Orders.OrderDate
FROM Customers
FULL OUTER JOIN Orders
ON Customers.CustomerID = Orders.CustomerID;

Keluaran dari kueri SQL di atas akan menjadi:

CustomerName ContactName OrderDate
Alfreds Maria 2022-03-20
Ana Trujillo Ana 2022-03-15
Antonio Antonio 2022-03-10
Antonio Antonio 2022-03-18
Around the Thomas NULL
Berglunds Christina 2022-03-12

Pada output di atas, dapat dilihat bahwa outer join mengembalikan semua baris dari tabel Customers dan Orders, termasuk baris yang tidak memiliki baris yang sesuai pada tabel lainnya. Dalam hal ini, kolom CustomerName dan ContactName akan berisi NULL untuk baris yang tidak memiliki pesanan yang sesuai, dan kolom OrderDate akan berisi NULL untuk baris yang tidak memiliki pelanggan yang sesuai.

Perbandingan SQL Joins

Setiap jenis join memiliki karakteristik uniknya sendiri dan melayani tujuan tertentu dalam operasi kueri database.

Inner Join

Inner join adalah jenis join yang paling sering digunakan di SQL. Ini mengembalikan hanya baris yang memiliki nilai yang sesuai di kedua tabel yang dihubungkan. Inner join ideal digunakan ketika Anda ingin menggabungkan data dari dua tabel yang memiliki kolom umum.

Misalnya, jika Anda memiliki tabel pelanggan dan tabel pesanan, dan ingin mendapatkan nama pelanggan dan pesanan yang mereka buat, Anda dapat menggunakan inner join untuk mencocokkan kolom ID pelanggan pada kedua tabel.

Left Join

Left join mengembalikan semua baris dari tabel kiri dan baris yang sesuai dari tabel kanan. Jika tidak ada baris yang sesuai pada tabel kanan, hasilnya tetap menampilkan semua baris dari tabel kiri, dengan nilai NULL pada kolom dari tabel kanan.

Jenis join ini berguna ketika Anda ingin mengambil semua data dari satu tabel, dan hanya data yang sesuai dari tabel lainnya. Kasus penggunaan yang umum untuk left join adalah ketika Anda ingin mengambil semua pelanggan dan pesanan yang mereka buat, bahkan jika mereka belum membuat pesanan.

Right Join

Right join mirip dengan left join, tetapi mengembalikan semua baris dari tabel kanan dan baris yang sesuai dari tabel kiri. Jika tidak ada baris yang sesuai pada tabel kiri, hasilnya tetap menampilkan semua baris dari tabel kanan, dengan nilai NULL pada kolom dari tabel kiri.

Right join tidak umum digunakan di SQL, karena selalu dapat diekspresikan sebagai left join. Namun, mungkin berguna dalam beberapa skenario khusus, seperti ketika Anda ingin mengambil semua pesanan dan pelanggan yang membuat pesanan tersebut, bahkan jika pelanggan belum terdaftar.

Outer Join

Outer join digunakan untuk menggabungkan baris dari dua atau lebih tabel menjadi satu hasil yang didasarkan pada kondisi yang sesuai di antara mereka. Outer join mengembalikan semua baris dari kedua tabel dan jika tidak ada yang cocok, hasilnya akan menampilkan nilai NULL pada kolom yang kosong.

Outer join berguna ketika Anda ingin mengambil semua data dari kedua tabel, terlepas dari apakah ada yang cocok atau tidak. Kasus penggunaan umum untuk outer join adalah ketika Anda ingin mengambil semua pelanggan dan semua pesanan, bahkan jika ada beberapa pesanan yang belum ditempatkan oleh pelanggan mana pun.

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!