Multi Table


Kenapa Multi Table?

Dalam sebuah database, seringkali diperlukan untuk bekerja dengan beberapa tabel secara simultan untuk mengambil dan memanipulasi data. Operasi multi-tabel dapat dilakukan menggunakan operasi SQL join dan operator set.


Inner Join

Inner join digunakan untuk menggabungkan baris dari dua atau lebih tabel berdasarkan kolom terkait. Inner Join mengembalikan hanya baris yang memiliki kecocokan antara tabel yang digabungkan.

Syntax untuk inner join adalah sebagai berikut:

SELECT column1, column2, ...
FROM table1
INNER JOIN table2 ON table1.column_name = table2.column_name;

Sebagai contoh, untuk mengambil daftar pesanan dan informasi pelanggan yang terkait dengan setiap pesanan, di mana kedua tabel memiliki kolom "customer_id" yang sama, digunakan pernyataan SQL berikut:

SELECT orders.order_id, customers.customer_name, customers.email
FROM orders
INNER JOIN customers
ON orders.customer_id = customers.customer_id;

Outer Join

Outer join digunakan untuk menggabungkan baris dari dua atau lebih tabel, termasuk baris yang tidak cocok dari salah satu atau kedua tabel.

Outer Join Types

  • Left outer join mengembalikan semua baris dari tabel kiri dan baris yang cocok dari tabel kanan.
  • Right outer join mengembalikan semua baris dari tabel kanan dan baris yang cocok dari tabel kiri.

Syntax untuk left outer join adalah sebagai berikut:

SELECT column1, column2, ...
FROM table1
LEFT OUTER JOIN table2 ON table1.column_name = table2.column_name;

Sebagai contoh, untuk mengambil daftar semua pelanggan dan pesanan yang terkait dengan setiap pelanggan, di mana beberapa pelanggan mungkin tidak memiliki pesanan, digunakan pernyataan SQL berikut:

SELECT customers.customer_name, orders.order_id, orders.order_date
FROM customers
LEFT OUTER JOIN orders
ON customers.customer_id = orders.customer_id;

Set Operators

Operator set digunakan untuk menggabungkan set hasil dari dua atau lebih pernyataan SELECT. Set hasil harus memiliki jumlah kolom yang sama, dan tipe data kolom harus kompatibel.

UNION

Operator union digunakan untuk menggabungkan set hasil dari dua atau lebih pernyataan SELECT, dengan mengeluarkan duplikat.

Syntax untuk operasi union adalah sebagai berikut:

SELECT column1, column2, ...
FROM table1
UNION
SELECT column1, column2, ...
FROM table2;

INTERSECT

Operator intersect digunakan untuk mengembalikan baris yang sama antara dua atau lebih pernyataan SELECT.

Syntax untuk operasi intersect adalah sebagai berikut:

SELECT column1, column2, ...
FROM table1
INTERSECT
SELECT column1, column2, ...
FROM table2;

EXCEPT

Operator except digunakan untuk mengembalikan baris yang ada pada pernyataan SELECT pertama tetapi tidak ada di pernyataan SELECT kedua. Syntax untuk operasi except adalah sebagai berikut:

SELECT column1, column2, ...
FROM table1
EXCEPT
SELECT column1, column2, ...
FROM table2;