Tutorial MySQL ini menjelaskan Cara Menggunakan MySQL JOINS(inner dan outer) dengan sintaks, dan contoh.
Deskripsi
MySQL JOINS digunakan untuk mengambil data dari beberapa tabel. Sebuah MySQL JOINS dilakukan setiap kali ada dua atau lebih tabel digabungkan dalam sebuah pernyataan SQL.
Ada berbagai jenis MySQL JOINS:
- MySQL INNER JOIN
- MySQL LEFT OUTER JOIN (LEFT JOIN)
- MySQL RIGHT OUTER JOIN (RIGHT JOIN)
Jadi mari kita bahas sintaks MySQL JOINS, lihat ilustrasi visual MySQL JOINS, dan jelajahi contoh MySQL JOINS.
INNER JOIN (simple join)Kemungkinannya adalah, Anda sudah pernah menulis sebuah pernyataan yang
menggunakan MySQL INNER JOIN. Ini adalah tipe join yang paling umum. MySQL INNER JOINS mengembalikan semua baris dari beberapa tabel dimana kondisi join terpenuhi.
Sintaksis
Sintaks untuk INNER JOIN di MySQL adalah:
SELECT columns FROM table1 INNER JOIN table2 ON table1.column=table2.column;<span id="result_box"class="" lang="id"></span> |
Contoh
Berikut adalah contoh dari MySQL INNER JOIN:
SELECT suppliers.supplier_id,suppliers.supplier_name,orders.order_date FROM suppliers INNER JOIN orders ON suppliers.supplier_id= orders.supplier_id; |
Contoh MySQL INNER JOIN ini akan mengembalikan semua baris dari tabel pemasok dan pesanan dimana ada nilai pemasok_id yang sesuai di tabel pemasok dan pesanan.
Mari lihat beberapa data untuk menjelaskan bagaimana INNER JOINS bekerja:
Kami memiliki tabel yang disebut pemasok dengan dua bidang (supplier_id dan supplier_name). Ini berisi data berikut:
10000 | IBM |
10001 | Hewlett Packard |
10002 | Microsoft |
10003 | NVIDIA |
Kami memiliki tabel lain yang disebut pesanan dengan tiga bidang (order_id, supplier_id, dan order_date). Ini berisi data berikut:
500125 | 10000 | 2013/05/12 |
500126 | 10001 | 2013/05/13 |
500127 | 10004 | 2013/05/14 |
Jika kita menjalankan perintah SELECT MySQL (yang berisi INNER JOIN) di bawah ini:
SELECT suppliers.supplier_id,suppliers.supplier_name,orders.order_date FROM suppliers INNER JOIN orders ON suppliers.supplier_id= orders.supplier_id; |
Hasil kami akan terlihat seperti ini:
10000 | IBM | 2013/05/12 |
10001 | Hewlett Packard | 2013/05/13 |
Baris untuk Microsoft dan NVIDIA dari tabel pemasok akan dihilangkan, karena 10002 dan 10001 pemasok_id tidak ada di kedua tabel. Baris untuk 500127 (order_id) dari tabel pesanan akan dihilangkan, karena supplier_id 10004 tidak ada di tabel pemasok.
LEFT OUTER JOINTipe join lainnya disebut dengan MySQL LEFT OUTER JOIN. Jenis join ini mengembalikan semua baris dari tabel tangan KIRI yang ditentukan dalam kondisi ON dan hanya baris tersebut dari tabel lain dimana field join sama (join condition terpenuhi).
Sintaksis
Sintaks untuk LEFT OUTER JOIN di MySQL adalah:
SELECT columns FROM table1 LEFT[OUTER]JOIN table2 ON table1.column=table2.column; |
Di beberapa database, LEFT OUTER JOIN kata kunci diganti dengan LEFT JOIN.
Contoh
Berikut adalah contoh dari MySQL LEFT OUTER JOIN:
SELECT suppliers.supplier_id,suppliers.supplier_name,orders.order_date FROM suppliers LEFT JOIN orders ON suppliers.supplier_id= orders.supplier_id; |
Contoh LEFT OUTER JOIN ini akan mengembalikan semua baris dari tabel pemasok dan hanya baris dari tabel pesanan dimana field join sama.
Jika nilai supplier_id di tabel pemasok tidak ada dalam tabel pesanan, semua field dalam tabel pesanan akan ditampilkan sebagai <null> pada set hasil.
Mari lihat beberapa data untuk menjelaskan bagaimana LEFT OUTER JOINS bekerja:
Kami memiliki tabel yang disebut pemasok dengan dua bidang (supplier_id dan supplier_name). Ini berisi data berikut:
10000 | IBM |
10001 | Hewlett Packard |
10002 | Microsoft |
10003 | NVIDIA |
Kami memiliki tabel kedua yang disebut pesanan dengan tiga bidang (order_id, supplier_id, dan order_date). Ini berisi data berikut:
500125 | 10000 | 2013/05/12 |
500126 | 10001 | 2013/05/13 |
Jika kita menjalankan pernyataan SELECT (yang berisi LEFT OUTER JOIN) di bawah ini:
SELECT suppliers.supplier_id,suppliers.supplier_name,orders.order_date FROM suppliers LEFT JOIN orders ON suppliers.supplier_id= orders.supplier_id; |
Hasil kami akan terlihat seperti ini:
10000 | IBM | 2013/05/12 |
10001 | Hewlett Packard | 2013/05/13 |
10002 | Microsoft | <null> |
10003 | NVIDIA | <null> |
Baris untuk Microsoft dan NVIDIA akan disertakan karena LEFT OUTER JOIN digunakan. Namun, Anda akan melihat bahwa bidang order_date untuk catatan tersebut berisi nilai <null>.
RIGHT OUTER JOINTipe join yang lain disebut MySQL RIGHT OUTER JOIN. Jenis join ini mengembalikan semua baris dari tabel RIGHT-hand yang ditentukan dalam kondisi ON dan hanya baris-baris dari tabel lain dimana field join sama (join condition terpenuhi).
Sintaksis
Sintaks untuk RIGHT OUTER JOIN di MySQL adalah:
SELECT columns FROM table1 RIGHT[OUTER]JOIN table2 ON table1.column=table2.column; |
Di beberapa database, kata kunci RIGHT OUTER JOIN diganti dengan RIGHT JOIN.
Contoh
Berikut adalah contoh dari MySQL RIGHT OUTER JOIN:
SELECT orders.order_id,orders.order_date,suppliers.supplier_name FROM suppliers RIGHT JOIN orders ON suppliers.supplier_id= orders.supplier_id; |
Contoh RIGHT OUTER JOIN ini akan mengembalikan semua baris dari tabel pesanan dan hanya baris dari tabel pemasok dimana bidang join sama.
Jika nilai supplier_id di tabel pesanan tidak ada di tabel pemasok, semua field di tabel pemasok akan ditampilkan sebagai <null> pada set hasil.
Mari lihat beberapa data untuk menjelaskan bagaimana RIGHT OUTER JOINS bekerja:
Kami memiliki tabel yang disebut pemasok dengan dua bidang (supplier_id dan supplier_name). Ini berisi data berikut:
10000 | Apple |
10001 |
Kami memiliki tabel kedua yang disebut pesanan dengan tiga bidang (order_id, supplier_id, dan order_date). Ini berisi data berikut:
500125 | 10000 | 2013/08/12 |
500126 | 10001 | 2013/08/13 |
500127 | 10002 | 2013/08/14 |
Jika kita menjalankan pernyataan SELECT (yang berisi RIGHT OUTER JOIN) di bawah ini:
SELECT orders.order_id,orders.order_date,suppliers.supplier_name FROM suppliers RIGHT JOIN orders ON suppliers.supplier_id= orders.supplier_id; |
Hasil kami akan terlihat seperti ini:
500125 | 2013/08/12 | Apple |
500126 | 2013/08/13 | |
500127 | 2013/08/14 | <null> |
Baris untuk 500127 (order_id) akan disertakan karena RIGHT OUTER JOIN digunakan. Namun, Anda akan melihat bahwa field supplier_name untuk record tersebut berisi nilai <null>.