SQL Academy · Pelajaran

Mekanisme INNER JOIN

Pahami INNER JOIN sebagai hasil kali Kartesius yang disaring, tulis kondisi penggabungan, dan baca output EXPLAIN untuk JOIN.

Pelajaran 2 dari 413 langkah

Mekanisme INNER JOIN adalah pelajaran SQL Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar SQL Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus SQL Academy mencakup 4 pelajaran total.

INNER JOIN

INNER JOIN hanya mengembalikan baris yang memiliki pasangan yang cocok di BOTH tabel, berdasarkan kondisi ON.

INNER JOIN Dasar

Ambil setiap pesanan beserta penggunanya:

SELECT o.id, o.total, u.email
FROM orders o
INNER JOIN users u ON u.id = o.user_id;

-- INNER is the default — you can also write:
SELECT o.id, o.total, u.email
FROM orders o
JOIN users u ON u.id = o.user_id;

Beberapa Kondisi dalam ON

Klausa ON adalah ekspresi boolean biasa:

SELECT *
FROM events e
JOIN sessions s
  ON s.user_id = e.user_id
 AND e.created_at BETWEEN s.start_at AND s.end_at;

Alias

Alias mempersingkat kueri dan menghindari rujukan kolom yang ambigu:

SELECT o.id, u.email
FROM orders AS o          -- AS is optional
JOIN users  AS u ON u.id = o.user_id;

Menggabungkan Tiga Tabel atau Lebih

Rangkai penggabungan dengan mengulangi klausa JOIN:

SELECT o.id, u.email, p.name AS product
FROM orders   o
JOIN users    u ON u.id = o.user_id
JOIN products p ON p.id = o.product_id;

USING (kolom)

Jika kolom penggabungan memiliki nama yang sama di kedua tabel, Anda dapat menulis USING—kolom tersebut tidak akan diduplikasi dalam keluaran:

SELECT o.id, total, email
FROM orders
JOIN users USING (user_id);   -- requires both tables to have user_id

NATURAL JOIN

Melakukan penggabungan berdasarkan setiap kolom yang memiliki nama sama—berhati-hatilah karena cara ini mudah rusak ketika kolom ditambahkan.

-- Avoid in production code:
SELECT * FROM orders NATURAL JOIN users;

Kondisi JOIN vs WHERE

Untuk INNER JOIN, kondisi dalam ON secara logis setara dengan kondisi dalam WHERE. Konvensinya: penyaring yang menentukan hubungan JOIN ditempatkan dalam ON; penyaring baris ditempatkan dalam WHERE.

SELECT * FROM orders o
JOIN users u ON u.id = o.user_id   -- join condition
WHERE u.country = 'US';            -- row filter

Perkalian Hasil

Jika satu baris di A cocok dengan tiga baris di B, hasilnya memiliki tiga baris. Ini normal—tetapi dapat mengejutkan jika Anda lupa. Jika melakukan agregasi, gunakan COUNT(*) dengan hati-hati.

Pratinjau Self-Join

Anda dapat menggabungkan sebuah tabel dengan dirinya sendiri dengan memberikan alias yang berbeda untuk setiap instans:

SELECT e.full_name AS employee, m.full_name AS manager
FROM employees e
JOIN employees m ON m.id = e.manager_id;

Performa INNER JOIN

Penggabungan dalam berjalan cepat ketika:

  • Kolom penggabungan memiliki indeks, terutama pada sisi FK
  • Salah satu tabel berukuran kecil (penggabungan hash), atau kedua tabel sudah terurut (penggabungan urut)
  • Anda menyaring data lebih awal agar jumlah baris perantara tetap rendah

Ringkasan

INNER JOIN hanya mempertahankan pasangan yang cocok.

  • JOIN = INNER JOIN secara bawaan
  • ON menyatakan kondisi penggabungan
  • Alias menjaga kueri tetap singkat
  • Kolom penggabungan sebaiknya memiliki indeks

Pemeriksaan Singkat

Apa yang dikembalikan oleh orders INNER JOIN users ON users.id = orders.user_id ketika sebuah pesanan tidak memiliki pengguna yang cocok (pesanan yatim)?

Gratis untuk memulai

Belajar SQL dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
46
Pelajaran
183

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Mekanisme INNER JOIN” gratis?

Ya — teks lengkap “Mekanisme INNER JOIN” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus SQL Academy, upgrade ke CoddyKit PRO. Kursus SQL Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Mekanisme INNER JOIN”?

Pahami INNER JOIN sebagai hasil kali Kartesius yang disaring, tulis kondisi penggabungan, dan baca output EXPLAIN untuk JOIN. Kamu berlatih SQL Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai SQL Academy?

Tidak diperlukan pengalaman sebelumnya. SQL Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.

Berapa lama pelajaran “Mekanisme INNER JOIN” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran SQL Academy ini?

Ya. Setiap pelajaran SQL Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Mengapa JOIN (Pengulangan Model Relasional)
  2. Mekanisme INNER JOIN
  3. LEFT/RIGHT JOIN dan JOIN OUTER
  4. Self-Join dan Alias
← Kembali ke SQL Academy