JOIN di SQL Server: Tipe dan Contoh

⚡ Ringkasan Cerdas

Perintah JOIN di SQL Server menggabungkan baris dari dua tabel atau lebih berdasarkan kolom yang terkait, menggunakan INNER, LEFT OUTER, RIGHT OUTER, dan FULL OUTER join untuk mengontrol baris mana yang cocok dan tidak cocok yang muncul dalam hasilnya.

  • 🔗 Tujuan: Perintah JOIN mengambil data terkait dari dua tabel atau lebih dengan mencocokkan kolom yang sama, biasanya berupa kunci.
  • 🎯 GABUNG DALAM: INNER JOIN hanya mengembalikan baris-baris di mana kondisi penggabungan (join) benar di kedua tabel.
  • ⬅️ GABUNG LUAR KIRI: LEFT OUTER JOIN mengembalikan setiap baris dari tabel kiri, mengisi kolom tabel kanan yang tidak cocok dengan NULL.
  • ➡️ SAMBUNGAN LUAR KANAN: RIGHT OUTER JOIN mengembalikan setiap baris dari tabel kanan, mengisi kolom tabel kiri yang tidak cocok dengan NULL.
  • 🔄 GABUNG LUAR LENGKAP: FULL OUTER JOIN mengembalikan semua baris dari kedua tabel, menggunakan NULL di mana pun kondisi tidak terpenuhi.
  • 🔑 Kondisi ON: Klausul ON menyebutkan kolom-kolom yang menghubungkan tabel, paling sering berupa pasangan kunci utama dan kunci asing.

JOIN di SQL Server: Contoh INNER, LEFT, RIGHT, dan FULL OUTER JOIN

Apa itu Join di SQL Server?

Data dapat diambil dari lebih dari satu tabel menggunakan pernyataan JOIN di SQL Server. JOIN menggabungkan baris dari dua atau lebih tabel berdasarkan kolom yang terkait di antara keduanya, paling sering sebuah kunci utama dicocokkan dengan kunci asingTerdapat empat jenis utama perintah JOIN di SQL Server:

  • INNER JOIN / simple join
  • SAMBUNGAN LUAR KIRI / SAMBUNGAN KIRI
  • GABUNGAN LUAR KANAN / GABUNGAN KANAN
  • GABUNG LUAR LENGKAP

Tabel di bawah ini merangkum baris mana yang dikembalikan oleh setiap tipe JOIN:

JOIN tipe Baris yang dikembalikan
INNER JOIN Hanya baris yang kondisi penggabungannya cocok di kedua tabel.
KIRI LUAR GABUNG Semua baris dari tabel kiri, ditambah baris yang cocok dari tabel kanan (NULL jika tidak ada yang cocok).
JOIN LUAR KANAN Semua baris dari tabel kanan, ditambah baris yang cocok dari tabel kiri (NULL jika tidak ada yang cocok).
GABUNG LUAR LENGKAP Semua baris dari kedua tabel, dengan nilai NULL di mana pun kondisi tidak terpenuhi.

Contoh-contoh di bawah ini menggunakan dua tabel, Mahasiswa dan Biaya, digabungkan pada kolom penerimaan umum mereka. Setiap bagian menjelaskan satu tipe JOIN dengan sintaksnya, kueri yang telah dikerjakan, dan hasilnya.

INNER JOIN

Jenis SQL Server Perintah JOIN mengembalikan baris dari semua tabel yang memenuhi kondisi gabungan. Sintaksnya adalah sebagai berikut:

SELECT columns
FROM table_1 
INNER JOIN table_2
ON table_1.column = table_2.column;

Kita akan menggunakan dua tabel berikut untuk mendemonstrasikan hal ini. Tabel Mahasiswa di bawah ini mencantumkan setiap mahasiswa dan nomor penerimaannya:

Tabel mahasiswa yang menampilkan kolom penerimaan, nama depan, dan nama belakang.

Tabel biaya di bawah ini mencatat jumlah yang telah dibayarkan oleh setiap nomor pendaftaran:

Tabel biaya yang mencantumkan nomor masuk dan kolom jumlah_dibayar

Perintah berikut mendemonstrasikan INNER JOIN di SQL Server dengan sebuah contoh:

SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid
FROM Students
INNER JOIN Fee
ON Students.admission = Fee.admission

Perintah tersebut mengembalikan hasil berikut, yang hanya menampilkan nomor penerimaan yang ada di kedua tabel:

Hasil INNER JOIN hanya menampilkan siswa yang pendaftarannya tercantum di kedua tabel.

Kita dapat mengetahui siswa mana yang telah membayar biaya mereka. Kami menggunakan kolom dengan nilai yang sama di kedua tabel, yaitu kolom penerimaan.

KIRI LUAR GABUNG

Jenis penggabungan ini mengembalikan semua baris dari tabel sebelah kiri ditambah catatan di tabel sebelah kanan dengan nilai yang cocok. Misalnya:

SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid
FROM Students
LEFT OUTER JOIN Fee
ON Students.admission = Fee.admission

Kode tersebut mengembalikan hasil berikut, keeping setiap siswa, bahkan ketika tidak ada catatan biaya yang cocok:

LEFT OUTER JOIN result keeping Setiap baris Siswa diisi dengan NULL untuk biaya yang tidak sesuai.

Catatan tanpa nilai yang cocok diganti dengan NULL di kolom masing-masing.

JOIN LUAR KANAN

Jenis gabungan ini mengembalikan semua baris dari tabel sebelah kanan dan hanya baris-baris yang memiliki nilai yang cocok di tabel sebelah kiri. Misalnya:

SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid
FROM Students
RIGHT OUTER JOIN Fee
ON Students.admission = Fee.admission

Pernyataan untuk OUTER JOIN di SQL Server mengembalikan hasil berikut:

RIGHT OUTER JOIN result keeping setiap baris Biaya dan baris Siswa yang sesuai

Alasan keluaran di atas adalah semua baris pada tabel Biaya tersedia di tabel Siswa ketika dicocokkan pada kolom penerimaan.

GABUNG LUAR LENGKAP

Jenis penggabungan ini mengembalikan semua baris dari kedua tabel, dengan nilai NULL di mana pun kondisi JOIN tidak benar. Misalnya:

SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid
FROM Students
FULL OUTER JOIN Fee
ON Students.admission = Fee.admission

Kode tersebut mengembalikan hasil berikut untuk kueri FULL OUTER JOIN dalam SQL, menggabungkan setiap baris dari kedua tabel:

Hasil FULL OUTER JOIN menggabungkan semua baris Students dan Fee dengan nilai NULL untuk celah.

Pertanyaan Umum Demo Slot

Perintah CROSS JOIN mengembalikan hasil perkalian Kartesius dari dua tabel, memasangkan setiap baris dari tabel pertama dengan setiap baris dari tabel kedua. Perintah ini tidak memiliki kondisi ON, sehingga tabel dengan 10 baris dan 5 baris akan menghasilkan 50 baris.

Anda menggunakan SELF JOIN: tabel dicantumkan dua kali dengan alias yang berbeda, kemudian digabungkan berdasarkan kolom terkait untuk membandingkan baris dalam tabel yang sama. Ini umum digunakan untuk data hierarkis, seperti mencocokkan setiap karyawan dengan manajernya.

Perintah JOIN menggabungkan kolom dari tabel terkait secara berdampingan, mencocokkan baris berdasarkan suatu kondisi. UNION menumpuk hasil dari dua kueri SELECT secara vertikal, menambahkan baris. JOIN memperluas hasilnya; UNION memperpanjangnya.

Ya. Klausa ON dapat menguji beberapa kolom yang digabungkan dengan AND, misalnya ON a.col1 = b.col1 AND a.col2 = b.col2. Kondisi komposit umum terjadi ketika satu kolom tidak secara unik mengidentifikasi suatu baris.

Klausul ON menentukan bagaimana tabel dicocokkan dan diterapkan saat operasi join berjalan. Klausul WHERE kemudian memfilter hasil gabungan tersebut. Dengan OUTER JOIN, memindahkan kondisi di antara keduanya dapat mengubah jumlah baris yang dikembalikan.

Ya. Menulis JOIN tanpa awalan secara default akan menghasilkan INNER JOIN, sehingga hanya mengembalikan baris yang cocok. Menambahkan LEFT, RIGHT, atau FULL sebelum OUTER JOIN akan mengubah baris mana yang tidak cocok yang akan dipertahankan dalam hasilnya.

Ya. Kopilot GitHub Anda dapat membuat draf kueri INNER, LEFT, RIGHT, dan FULL OUTER JOIN dari perintah bahasa alami. Selalu tinjau kondisi ON dan tipe join agar hasil yang diperoleh sesuai dengan yang Anda inginkan.

Asisten AI dan pembelajaran mesin menyarankan tipe penggabungan yang tepat, menghasilkan kondisi ON multi-tabel, dan menandai kunci yang hilang atau produk Cartesian yang tidak disengaja. Mereka juga dapat merekomendasikan indeks untuk kolom penggabungan. Pengembang memverifikasi setiap saran sebelum menjalankannya.

Ringkaslah postingan ini dengan: