Cara Menguasai SQL Bergabung – Dalam, Luar, Salib, dan Bergabung dengan Diri Dengan Contoh

PENDAHULUAN

SQL Joins adalah fitur mendasar untuk menggabungkan data dari beberapa tabel berdasarkan kolom terkait. Memahami berbagai jenis gabungan dan aplikasinya sangat penting untuk bekerja dengan database relasional secara efektif. Dalam artikel ini, kami akan mengeksplorasi berbagai jenis SQL Join dengan penjelasan yang jelas dan contoh -contoh praktis.

Tabel Sampel

Kami akan menggunakan tabel pelanggan dan pesanan berikut untuk contoh:

Tabel Pelanggan:

Customerid

Nama

Negara

1

Alice

Amerika Serikat

2

Bob

Kanada

3

Charlie

Inggris

4

Diana

Jerman

Tabel Pesanan:

Memesan

Customerid

Produk

Kuantitas

101

1

Laptop

2

102

1

Mouse

5

103

2

Keyboard

3

104

3

Monitor

1

105

5

Smartphone

2

1. Batu dalam: Menggabungkan data yang cocok

Baris gabung dalam mengambil baris yang memiliki nilai yang cocok di kedua tabel. Ini adalah tipe gabungan yang paling umum digunakan.

Contoh: Menggabungkan pelanggan dan pesanan mereka

Pertanyaan:

SELECT Customers.Name, Orders.Product, Orders.Quantity
FROM Customers
INNER JOIN Orders
ON Customers.CustomerID = Orders.CustomerID;

Hasil:

Nama

Produk

Kuantitas

Alice

Laptop

2

Alice

Mouse

5

Bob

Keyboard

3

Charlie

Monitor

1

Penjelasan:

  • Hanya pelanggan dengan pesanan yang muncul dalam hasilnya.
  • Pelanggan Diana dan Order 105 dikecualikan karena mereka tidak memiliki catatan yang cocok di kedua tabel.

2. BERGABUNG KIRI: Termasuk semua catatan dari meja kiri

BERGABUNG KIRI Mengembalikan semua baris dari meja kiri (Pelanggan), bersama dengan baris yang cocok dari meja kanan (Pesanan). Baris tanpa kecocokan di tabel yang tepat akan memiliki nilai nol.

Contoh: termasuk pelanggan tanpa pesanan

Pertanyaan:

SELECT Customers.Name, Orders.Product, Orders.Quantity
FROM Customers
LEFT JOIN Orders
ON Customers.CustomerID = Orders.CustomerID;

Hasil:

Nama

Produk

Kuantitas

Alice

Laptop

2

Alice

Mouse

5

Bob

Keyboard

3

Charlie

Monitor

1

Diana

BATAL

BATAL

Penjelasan:

  • Semua pelanggan disertakan, bahkan jika mereka tidak memiliki pesanan.
  • Diana muncul dengan nol untuk produk dan kuantitas.

3. Kanan bergabung: termasuk semua catatan dari tabel kanan

Bergabung kanan adalah kebalikan dari gabungan kiri. Ini mencakup semua baris dari tabel kanan (pesanan) dan baris yang cocok dari meja kiri (pelanggan). Baris tanpa kecocokan di tabel kiri akan memiliki nilai nol.

Contoh: termasuk pesanan tanpa pelanggan

Pertanyaan:

SELECT Customers.Name, Orders.Product, Orders.Quantity
FROM Customers
RIGHT JOIN Orders
ON Customers.CustomerID = Orders.CustomerID;

Hasil:

Nama

Produk

Kuantitas

Alice

Laptop

2

Alice

Mouse

5

Bob

Keyboard

3

Charlie

Monitor

1

BATAL

Smartphone

2

Penjelasan:

  • Semua pesanan disertakan, bahkan jika mereka tidak memiliki pelanggan yang cocok.
  • Pesan 105 muncul dengan null untuk nama karena customerid = 5 tidak ada di tabel pelanggan.

4. Lengkap Luar: termasuk semua catatan dari kedua tabel

Join luar lengkap menggabungkan hasil gabungan kiri dan bergabung kanan, mengembalikan semua baris dari kedua tabel. Baris tanpa kecocokan akan memiliki nilai nol untuk kolom yang hilang.

Contoh: Menggabungkan semua pelanggan dan pesanan

Pertanyaan:

SELECT Customers.Name, Orders.Product, Orders.Quantity
FROM Customers
FULL OUTER JOIN Orders
ON Customers.CustomerID = Orders.CustomerID;

Hasil:

Nama

Produk

Kuantitas

Alice

Laptop

2

Alice

Mouse

5

Bob

Keyboard

3

Charlie

Monitor

1

Diana

BATAL

BATAL

BATAL

Smartphone

2

Penjelasan:

  • Semua pelanggan dan pesanan disertakan.
  • Diana (tidak ada pesanan) dan pesanan 105 (tidak ada pelanggan yang cocok) muncul dengan nilai nol.

5. Cross Gabungan: Produk Cartesian

Cross Join Mengembalikan produk Cartesian dari dua meja, memasangkan setiap baris dari meja kiri dengan setiap baris dari meja kanan.

Contoh: Memasangkan pelanggan dengan produk

Pertanyaan:

SELECT Customers.Name, Orders.Product
FROM Customers
CROSS JOIN Orders;

Hasil:

Nama

Produk

Alice

Laptop

Alice

Mouse

Alice

Keyboard

Alice

Monitor

Alice

Smartphone

Bob

Laptop

Bob

Mouse

Penjelasan:

  • Setiap pelanggan dipasangkan dengan setiap produk, menghasilkan 20 baris (4 pelanggan x 5 pesanan).

6. Self bergabung: Bergabung dengan meja dengan dirinya sendiri

Self goint digunakan untuk membandingkan baris dalam tabel yang sama. Ini berguna untuk data hierarkis atau hubungan.

Contoh: Hubungan karyawan-manajer

Asumsikan kami memiliki tabel karyawan:

Karyawan

Nama

Manajer

1

Alice

3

2

Bob

3

3

Charlie

BATAL

4

Diana

1

Pertanyaan: Temukan karyawan dan manajer mereka.

SELECT E1.Name AS Employee, E2.Name AS Manager
FROM Employees E1
LEFT JOIN Employees E2
ON E1.ManagerID = E2.EmployeeID;

Hasil:

Karyawan

Manajer

Alice

Charlie

Bob

Charlie

Charlie

BATAL

Diana

Alice

Penjelasan:

  • Tabel ini bergabung dengan dirinya sendiri menggunakan ManagerID dan karyawan untuk mengaitkan karyawan dengan manajer mereka.

Ringkasan gabungan

Bergabunglah dengan tipe

Keterangan

Contoh Penggunaan Kasus

Batin bergabung

Cocokkan baris di kedua tabel.

Pelanggan dengan pesanan.

Kiri bergabung

Semua baris dari meja kiri, mencocokkan baris dari kanan.

Pelanggan dengan atau tanpa pesanan.

Bergabung dengan benar

Semua baris dari meja kanan, mencocokkan baris dari kiri.

Pesanan dengan atau tanpa pelanggan.

Gabungan luar lengkap

Semua baris dari kedua tabel, dengan nol untuk pertandingan yang hilang.

Lengkapi data pelanggan dan pesanan.

Silang bergabung

Produk Cartesian dari dua tabel.

Memasangkan pelanggan dengan produk.

Bergabunglah sendiri

Bergabunglah dengan meja dengan dirinya sendiri.

Hubungan karyawan-manajer.

Kesimpulan

Memahami SQL Joins adalah kunci untuk bekerja dengan database relasional. Setiap jenis gabungan memiliki tujuan yang unik, dan menguasainya akan membantu Anda menggabungkan dan menganalisis data secara efisien. Latih contoh -contoh ini untuk memperkuat pemahaman Anda!


Terima kasih telah meluangkan waktu untuk mengeksplorasi wawasan terkait data dengan saya. Saya menghargai pertunangan Anda. Jika Anda menemukan informasi ini bermanfaat, saya mengundang Anda untuk mengikuti saya atau terhubung dengan saya di LinkedIn. Selamat menjelajahi! 👋