Lewati ke konten utama

Tutorial Join di SQL

Tutorial ini akan menjelaskan cara menggabungkan tabel menggunakan primary key dan foreign key di SQL Server.
Diperbarui 28 Sep 2026  · 5 mnt Baca

Jelajahi bersama AI

ChatGPTClaudePerplexity

SQL Server adalah sistem manajemen basis data relasional. Salah satu prinsip utama basis data relasional adalah data disimpan di banyak tabel.

Sistem manajemen basis data relasional

Kita perlu dapat menggabungkan tabel untuk mengambil data yang kita butuhkan. Kita menggunakan kunci primary dan foreign untuk menggabungkan tabel.

Primary Key

Primary key adalah kolom yang digunakan untuk mengidentifikasi setiap baris dalam tabel secara unik. Keunikan ini dapat dicapai dengan menggunakan bilangan bulat berurutan sebagai kolom identitas. Atau kadang, kolom yang sudah ada secara alami berisi nilai unik dan dapat digunakan.

Pada contoh di bawah, kita dapat melihat beberapa baris pertama dari tabel artist. Tabel ini memiliki dua kolom, artist_id dan name. Kolom artist_id berperan sebagai primary key untuk tabel ini; kolom tersebut bertipe integer, dan setiap nilainya berbeda.

+-----------+-------------------+
| artist_id | name              |
|-----------+-------------------|
| 1         | AC/DC             |
| 2         | Accept            |
| 3         | Aerosmith         |
| 4         | Alanis Morissette |
| 5         | Alice In Chains   |
+-----------+-------------------+

Sekarang mari lihat tabel album. Bisakah Anda menemukan primary key-nya? Ya, itu adalah kolom album_id. Umumnya, nama primary key menggunakan pola "nama-tabel garis bawah id". Namun, Anda juga akan melihat ada kolom artist_id. Kolom tersebut juga berisi integer dan memiliki nama yang sama dengan kolom artist_id di tabel artist. Apa artinya ini?

+----------+-------------------------+-----------+
| album_id | title                   | artist_id |  
|----------+-------------------------+-----------|
| 1        | For Those About To Rock | 1         |
| 2        | Balls to the Wall       | 2         |
| 3        | Restless and Wild       | 2         |
| 4        | Let There Be Rock       | 1         |
| 5        | Big Ones                | 3         |
+----------+-------------------------+-----------+

Foreign Keys

Dari keluaran sebelumnya, jelas bahwa artist_id pada tabel artist berperan sebagai Foreign_key ke tabel album. Constraint FOREIGN KEY digunakan untuk mencegah tindakan yang akan merusak keterkaitan antar tabel.

  • tabel artist
+-----------+-------------------+
| artist_id | name              |
|-----------+-------------------|
| 1         | AC/DC             |
| 2         | Accept            |
| 3         | Aerosmith         |
| 4         | Alanis Morissette |
| 5         | Alice In Chains   |
+-----------+-------------------+
  • tabel album
+----------+-------------------------+-----------+
| album_id | title                   | artist_id |  
|----------+-------------------------+-----------|
| 1        | For Those About To Rock | 1         |
| 2        | Balls to the Wall       | 2         |
| 3        | Restless and Wild       | 2         |
| 4        | Let There Be Rock       | 1         |
| 5        | Big Ones                | 3         |
+----------+-------------------------+-----------+

Ini berarti ketika artist_id pada tabel album cocok dengan artist_id pada tabel artist, baris-baris tersebut dapat dihubungkan sebagai sebuah JOIN.

Menggabungkan Album dan Artist

Baris ke-1 dan ke-4 pada tabel artist memiliki artist_id bernilai 1. artist_id 1 pada tabel artist adalah AC/DC. Jadi, ketika kita menggabungkan kedua tabel, kita mengembalikan detail album dari tabel album, dan detail artis yang sesuai dari tabel artist — digabung menggunakan field artist_id yang sama-sama ada di kedua tabel.

Ini dikenal sebagai inner join.

SELECT
  album_id,
  title,
  album.artist_id,
  name AS artist_name
FROM album
INNER JOIN artist ON artist.artist_id = album.artist_id
WHERE album.artist_id = 1;
+----------+-------------------------+-----------+-------------+
| album_id | title                   | artist_id | artist_name |
|----------+---------------------------------------+-----------|
| 1        | For Those About To Rock | 1         | AC/DC       |
| 4        | Let There Be Rock       | 1         | AC/DC       |
+----------+-------------------------+-----------+-------------|

Kita menggabungkan tabel album dan artist dengan mencocokkan artist_id dari tabel artist ke artist_id di tabel album.

Saat memilih kolom dengan nama yang sama dari tabel yang berbeda, Anda harus menuliskan nama kolom secara lengkap. Jika tidak, SQL Server tidak akan tahu dari tabel mana harus melakukan SELECT terhadap kolom tersebut.

Untuk menuliskan kolom secara lengkap, Anda harus menambahkan awalan nama tabel yang relevan, diikuti dengan titik.

Sintaks Inner Join

Berikut contoh umum untuk mengingatkan Anda tentang sintaksnya. Ketika kita memilih kolom yang relevan dari tabel utama, dalam hal ini table_A, lalu memilih kolom tambahan apa pun yang ingin kita gabungkan, yang dalam hal ini adalah table_B. Kemudian kita menentukan join menggunakan kata kunci INNER JOIN dan ON, dengan menyediakan kolom kunci yang diperlukan dari kedua tabel.

SELECT
    table_A.columnX,
    table_A.columnY,
    table_B.columnZ,
FROM table_A
INNER JOIN table_B ON table_B.foreign_key = table_A.primary_key;

Tidak Menggunakan Klausa WHERE

Pada contoh ini, kita tidak menentukan klausa WHERE, sehingga kita mengembalikan SEMUA kombinasi dari SEMUA kecocokan antara tabel artist dan album, lagi-lagi berdasarkan kolom artist_id yang sama-sama dimiliki keduanya.

SELECT
  album_id,
  title,
  album.artist_id,
  name AS artist_name
FROM album
INNER JOIN artist on artist.artist_id = album.artist_id;
+----------+---------------------------------------+-----------+
| album_id | title                   | artist_id | artist_name |
|----------+---------------------------------------+-----------|
| 1        | For Those About To Rock | 1         | AC/DC       |
| 4        | Let There Be Rock       | 1         | AC/DC       |
| 2        | Balls To The Wall       | 2         | Accept      |
| 3        | Restless and Wild       | 2         | Accept      |
+----------+---------------------------------------+-----------+

Multiple Inner Join

Anda juga dapat menggabungkan lebih dari dua tabel menggunakan INNER JOIN. Anda cukup menambahkan satu INNER JOIN tambahan untuk setiap kombinasi tabel. Pada kode di bawah, kita menggabungkan tabel A dan B, serta B dan C.

SELECT
  table_A.columnX,
  table_A.columnY,
  table_B.columnZ table_C columnW
FROM table_A
INNER JOIN table_B ON table_B.foreign_key = table_A.primary_key
INNER JOIN table_C ON table_C.foreign_key = table_B.primary_key;

Untuk mempelajari lebih lanjut tentang penggabungan tabel, silakan lihat video dari kursus kami Introduction to SQL Server.

Konten ini diambil dari kursus DataCamp Introduction to SQL Server oleh John MacKintosh.

Topik
SQL
Data Science

Kursus SQL

Kursus

Manipulasi Data di SQL

4 jam
337.9K
Kuasai kueri SQL yang kompleks yang diperlukan untuk menjawab berbagai pertanyaan ilmu data dan menyiapkan set data yang kuat untuk analisis di PostgreSQL.
Lihat DetailRight Arrow
Mulai Kursus
Lihat SelengkapnyaRight Arrow
Terkait

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026

Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Dario Radečić's photo

Dario Radečić

15 mnt

blogs

Tutorial Korelasi di R

Dapatkan pengenalan dasar-dasar korelasi di R: pelajari lebih lanjut tentang koefisien korelasi, matriks korelasi, plotting korelasi, dan sebagainya.
David Woods's photo

David Woods

13 mnt

blogs

Spaghetti Plot dan Jalur Badai

Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Hugo Bowne-Anderson's photo

Hugo Bowne-Anderson

13 mnt

blogs

12 Alternatif ChatGPT Terbaik yang Bisa Anda Coba pada 2026

Artikel ini menyajikan daftar alternatif ChatGPT yang akan meningkatkan produktivitas Anda.
Javier Canales Luna's photo

Javier Canales Luna

14 mnt

Lihat SelengkapnyaLihat Selengkapnya