Cara Join Antar Tabel Menggunakan SQL

Cara Join Antar Tabel Menggunakan SQL
Cara Join Antar Tabel Menggunakan SQL

Join merupakan sebuah operasi yang digunakan untuk mendapatkan data gabungan dari dua tabel atau lebih. Pada SQL Server terdapat tiga jenis join yaitu:

Cross Join (cartesian)

Menghasilkan kombinasi semua baris yang terdapat dalam tabel, baik yang berpasangan maupun tidak berpasangan. Meskipun join ini tidak pernah digunakan namun Cross Join merupakan dasar dari join antar tabel.

Inner Join

Join ini hanya menghasilkan output berupa kombinasi baris-baris yang berpasangan saja, baris lainnya akan dieleminasi dan baris lain yang tidak mempunyai pasangan juga akan disingkirkan.

Outer Join

Hampir sama dengan Inner Join perbedaannya terletak pada baris yang tidak mempunyai pasangan akan turut diproses. Outer Join masih dibagi menjadi tiga lagi:
  1. Left Outer Join
  2. Right Outer Join
  3. Full Outer Join

Cross Join

Perintah dasarnya:
Select * from tabel1, tabel2, tabel3, …..

atau
select * from tabel1.field1, tabel2.field1, tabel3.field1, …..

contoh:
select * from nasabah, cabang_bank

select * from nasabah.idnasabah, nasabah.nama_nasabah,
cabang_bank.nama_cabang from nasabah, cabang_bank

Inner Join

Di bawah ini diberikan beberapa contoh Inner Join, cobalah pada Query Analyzer dan amai hasilnya. Jika perlu kembangkan perintah-perintah tersebut.
Select * from nasabah, nasabah_rek
where nasabah.idnasabah = nasabah_rek.idnasabah

select * from rekening, nasabah_rek
where rekening.norek = nasabah.norek

select a.nama_nasabah, b.kode_cabang, c.norek
from nasabah a, rekening b, nasabah_rek c
where a.idnasabah = c.idnasabah and b.norek = c.norek

select * from nasabah a inner join nasabah_rek b
on a.idnasabah = b.idnasabah

select * from rekening a join nasabah_rek b on a.norek = b.norek

select a.nama_nasabah, b.kode_cabang, c.norek
from nasabah a join nasabah_rek c
on a.idnasabah = c.idnasabah join rekening b on b.norek = c.norek

Outer Join

Berikut ini contoh penggunaan Left Outer Join:
Select * from nasabah left join nasabah_rek
on nasabah.idnasabah = nasabah_Rek.idnasabah

select a.nama_nasabah, b.kode_cabang, c.norek
from nasabah a left join nasabah_rek c
on a.idnasabah = c.idnasabah left join rekening b
on b.norek = c.norek

Berikut ini contoh penggunaan Right Outer Join:
Select * from nasabah right join nasabah_rek
on nasabah.idnasabah = nasabah_rek.idnasabah

Berikut ini contoh penggunaan Full Outer Join:
Select * nasabah full join nasabah_rek
On nasabah.idnasabah = nasabah_rek.idnasabah

Berikut ini contoh perintah untuk melihat perbedaan antara Inner Join dan Outer Join, contoh:
Select a.norek, b.nama_cabang
from rekening a inner join cabang_bank b
on a.kode_cabang = b.Kode_cabang

Contoh lainnya:
Select a.norek, b.nama_cabang from rekening a 
left outer join cabang_bank b on a.kode_cabang = b.kode.cabang

Select a.norek, b.nama_cabang from rekening a
right outer join cabang_bank b on a.kode_cabang = b.kode.cabang

Select a.norek, b.nama_cabang from rekening a
full outer join cabang_bank b on a.kode_cabang = b.kode.cabang

Secara sederhana dapat disimpulkan bahwa Cross Join merupakan jenis join yang tidak memakai persyaratan. Sementara jenis join lainnya memerlukan persyaratan. Persyaratan yang dimaksud disini yaitu data pada kolom FK (kunci relasi) di tabel transaksi harus sama dengan data pada kolom PK (kunci primer) di tabel master.

Persyaratan tersebut dapat ditulis sebagai berikut atau sebaliknya:
TabelMaster.KunciPrimary = TabelTransaksi.KunciForeign

Oleh sebab itu keharusan FK dan PK yang saling berhubungan maka Inner Join dan Outer Join hanya dapt dilakukan pada tabel yang memiliki relasi saja. Sementara Cross Join dapat dilakukan pada sembarang/semua tabel.

TUGAS
Sebelum menerima tugas dari dosen pelajari sekali lagi Bab 10 Join Antar Tabel diatas, agar lebih mudah dalam memahami dan menerima tugas yang diberikan.

Nama Tabel Buku
Nama Field
Tipe Data
Lebar
Keterangan
Idbuku
Varchar
2
Nomor identitas buku
Idterbit
Varchar
2
Nomor identitas penerbit
Judul
Varchar
100
Judul buku
Penulis
Varchar
30
Nama penulis buku
Harga
Integer
6
Harga satuan buku

Nama Tabel Penerbit
Nama Field
Tipe Data
Lebar
Keterangan
Idterbit
Varchar
2
Nomor identitas penerbit
Namaterbit
Varchar
50
nama penerbit
Alamat
Varchar
100
Alamat penerbit

Nama Tabel Jual
Nama Field
Tipe Data
Lebar
Keterangan
Idbuku
Varchar
2
Nomor identitas buku
Nota
Varchar
5
Nomor nota penjualan
Tgljual
Date
8
Tanggal penjualan buku
Qty
Integer
2
Jumlah buku yang terjual

Posting Komentar

Lebih baru Lebih lama

نموذج الاتصال