MySQL - Inner Join: Panduan untuk Pemula

Halo teman-teman pecinta basis data! Hari ini, kita akan melompat ke dunia yang menakjubkan MySQL dan menjelajahi salah satu fitur paling kuatnya: Inner Join. Jangan khawatir jika Anda baru belajar pemrograman – saya akan menjadi panduan ramah Anda dalam perjalanan ini, menjelaskan segala sesuatu secara langkah demi langkah. Jadi, ambillah secangkir kopi, dan mari kita mulai!

MySQL - Inner Join

Apa Itu MySQL Inner Join?

Sebelum kita masuk ke detilnya, mari kita pahami apa itu Inner Join dan mengapa itu sangat penting dalam manajemen basis data.

Bayangkan Anda sedang merencanakan pesta besar dan Anda memiliki dua daftar: satu dengan nama teman-teman Anda dan lainnya dengan minuman kesukaan mereka. Apakah Anda merasa senang jika Anda dapat menggabungkan kedua daftar ini untuk melihat teman mana yang menyukai minuman mana? Itu sebenarnya apa yang dilakukan Inner Join di MySQL – menggabungkan baris dari dua atau lebih tabel berdasarkan kolom yang terkait antaranya.

Sintaks Dasar

Berikut adalah sintaks dasar Inner Join:

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

Jangan khawatir jika ini terlihat agak menakutkan – kita akan membongkar hal ini dengan beberapa contoh nyata!

MySQL Inner Join dalam Aksi

mari kita buat dua tabel sederhana untuk menunjukkan bagaimana Inner Join bekerja:

CREATE TABLE friends (
id INT PRIMARY KEY,
name VARCHAR(50)
);

CREATE TABLE drinks (
id INT PRIMARY KEY,
friend_id INT,
drink VARCHAR(50)
);

INSERT INTO friends (id, name) VALUES
(1, 'Alice'),
(2, 'Bob'),
(3, 'Charlie');

INSERT INTO drinks (id, friend_id, drink) VALUES
(1, 1, 'Lemonade'),
(2, 2, 'Cola'),
(3, 3, 'Iced Tea'),
(4, 1, 'Water');

Sekarang, mari kita gunakan Inner Join untuk menggabungkan tabel ini:

SELECT friends.name, drinks.drink
FROM friends
INNER JOIN drinks
ON friends.id = drinks.friend_id;

Kueri ini akan memberikan kita:

name drink
Alice Lemonade
Alice Water
Bob Cola
Charlie Iced Tea

Bagus sekali! Kita telah berhasil mencocokkan setiap teman dengan minuman kesukaannya!

Mengerti Hasilnya

  • Alice muncul dua kali karena dia memiliki dua minuman yang terkait dengannya.
  • Urutan ini berdasarkan id di tabel friends.
  • Inner Join hanya menampilkan rekord di mana ada kesamaan di kedua tabel.

Menggabungkan Banyak Tabel menggunakan Inner Join

Sekarang, mari kita naikkan tingkat kesulitannya sedikit. Apa bila kita ingin menambahkan dimensi lain ke rencana pesta kita? Misalnya, kita juga ingin tahu makanan ringan yang disukai teman-teman kita.

Pertama-tama, mari kita buat tabel baru:

CREATE TABLE snacks (
id INT PRIMARY KEY,
friend_id INT,
snack VARCHAR(50)
);

INSERT INTO snacks (id, friend_id, snack) VALUES
(1, 1, 'Chips'),
(2, 2, 'Popcorn'),
(3, 3, 'Pretzels');

Sekarang, kita dapat menggabungkan semua tiga tabel:

SELECT friends.name, drinks.drink, snacks.snack
FROM friends
INNER JOIN drinks ON friends.id = drinks.friend_id
INNER JOIN snacks ON friends.id = snacks.friend_id;

Ini akan memberikan kita:

name drink snack
Alice Lemonade Chips
Alice Water Chips
Bob Cola Popcorn
Charlie Iced Tea Pretzels

Lihat! Kita sekarang memiliki menu pesta lengkap untuk setiap teman.

Inner Join dengan Klause WHERE

kadang-kadang, kita mungkin ingin menyaring hasil gabungan kita. Ini adalah saat WHERE klause berguna. Misalnya, kita hanya ingin melihat preferensi teman yang namanya dimulai dengan huruf 'A':

SELECT friends.name, drinks.drink, snacks.snack
FROM friends
INNER JOIN drinks ON friends.id = drinks.friend_id
INNER JOIN snacks ON friends.id = snacks.friend_id
WHERE friends.name LIKE 'A%';

Ini akan memberikan kita:

name drink snack
Alice Lemonade Chips
Alice Water Chips

Inner Join Menggunakan Program Klien

Meskipun kita telah melihat kueri SQL secara langsung, dalam keadaan nyata, Anda seringkali akan menggunakan program klien untuk berinteraksi dengan basis data MySQL Anda. Mari kita lihat bagaimana kita bisa melakukan ini menggunakan Python dan pustaka mysql-connector:

import mysql.connector

# Menyambungkan ke basis data
cnx = mysql.connector.connect(user='your_username', password='your_password',
host='127.0.0.1',
database='your_database_name')

cursor = cnx.cursor()

# Menjalankan kueri Inner Join
query = """
SELECT friends.name, drinks.drink, snacks.snack
FROM friends
INNER JOIN drinks ON friends.id = drinks.friend_id
INNER JOIN snacks ON friends.id = snacks.friend_id
"""

cursor.execute(query)

# Mengambil dan mencetak hasil
for (name, drink, snack) in cursor:
print(f"{name} menyukai {drink} dan {snack}")

# Menutup koneksi
cursor.close()
cnx.close()

Skrip ini akan menyambungkan ke basis data MySQL Anda, menjalankan kueri Inner Join, dan mencetak preferensi setiap teman dalam format yang mudah dibaca.

Kesimpulan

Dan begitu saja, teman-teman! Kita telah melakukan perjalanan melalui negeri MySQL Inner Joins, dari konsep dasar hingga kueri yang lebih kompleks dan bahkan sepintas lihat bagaimana menggunakannya dalam lingkungan pemrograman nyata. Ingat, latihan membuat sempurna, jadi jangan takut untuk mencoba tabel dan kueri Anda sendiri.

Inner Joins adalah seperti lepidoptera sosial dunia basis data – mereka tentang membuat koneksi. Semakin Anda menggunakannya, semakin Anda akan menghargai kekuatannya dalam menggabungkan data Anda dalam cara yang bermakna.

Selamat menanyakan, dan semoga semua join Anda selalu menarik! (Maaf, saya tidak bisa menahan diri untuk sedikit humor basis data di sana!)

Credits: Image by storyset