Senin, 05 Maret 2012

TUGAS INNER JOIN, CROSS JOIN & BETWEEN

Tiga table yang akan kita gunakan dari database tersebut adalah ms_cabang, ms_kota dan ms_propinsi dengan relasi terlihat seperti pada gambar berikut.

INNER JOIN
INNER JOIN adalah tipe join yang akan kita bahas pertama. Tipe join ini akan
mengambil semua row dari table asal dan table tujuan dengan kondisi nilai key
yang terkait saja - jika ada, dan jika tidak maka row tersebut tidak akan muncul.
Kalau tidak terdapat kondisi key terkait antar table, maka semua row dari kedua table dikombinasikan.
Syntax dari INNER JOIN adalah sebagai berikut :
table_reference [INNER] JOIN table_factor [join_condition]
Terlihat bahwa keyword INNER boleh digunakan secara eksplisit atau tidak. Jika tidak
digunakan maka konstruksi JOIN tanpa keyword lain dianggap sebagai INNER JOIN.
INNER JOIN Antar Table dengan Kondisi ("ms_cabang" dan "ms_kota" dengan key "kode_kota")
SELECT * FROM ms_cabang INNER JOIN ms_kota ON ms_cabang.kode_kota = ms_kota.kode_kota
Hasil terlihat seperti gambar berikut ini. Disini table sumber adalah ms_cabang
(left) mencari referensi row lain dari table ms_kota (right) dengan kondisi nilai kode_kota diantara kedua table tersebut sama. Kondisi ini menggunakan keyword ON. Dengan panduan gambar, kita lihat bahwa tiap row dari ms_cabang akan dicari padanan row-nya di ms_kota :
untuk row pertama kita memiliki kode_kota dengan nilai "KOTA-003", ini akan dicari referensinya ke table ms_kota untuk nilai yang sama dan kita dapatkan row dengan nilai nama_kota "Lhokseumawe" adalah padanannya.
untuk row kedua kita memiliki kode_kota dengan nilai "KOTA-083", ini akan dicari referensinya ke table ms_kota untuk nilai yang sama dan kita dapatkan row dengan nilai nama_kota "Bau-bau" adalah padanannya.
demikian seterusnya.

CROSS JOIN
CROSS JOIN identik dengan INNER JOIN pada MySQL 5.0. Pembahasannya sama dengan INNER JOIN sehingga tidak diulangi lagi disini.
Contoh Penggunaan :
SELECT ms_cabang.nama_cabang,
ms_kota.nama_kota,
ms_propinsi.nama_propinsi
FROM
ms_cabang
CROSS JOIN
ms_kota ON ms_cabang.kode_kota = ms_kota.kode_kota
CROSS JOIN
ms_propinsi ON ms_kota.kode_propinsi = ms_propinsi.kode_propinsi
sumber : http://mysql.phi-integration.com/sql/tipe-tipe-join-pada-mysql-5
BETWEEN
Dalam pembuatan aplikasi database pemilihan data tertentu tidak dapat terelakkan.
Misalnya saja bagaimana kita menyediakan data orang-orang yang tinggal di beberapa kota terntentu bisa menggunakan operator IN
Jika akan memberikan laporan harian, mingguan, bulanan atau tahunan bisa menggunakan operator BETWEEN
Anggap saja kita mempunyai data Mahasiswa dengan beberapa record
script sql untuk menampilkan semuanya adalah:
SELECT * FROM Mahasiswa
hasilnya seperti gambar di bawah ini:

Pernyataan SQL untuk memilih beberapa data adalah seperti dibawah ini:
SELECT * FROM Mahasiwa WHERE NIM IN (2010111,2010114)
Artinya kita memilih mahasiswa dengan NIM 2010111 dan 2010114 hasilnya adalah seperti gambar di bawah ini:

Anda juga dapat memilih beberapa data dalam range atau rentang tertentu misal
datanya dengan NIM 2010112 s/d 2010114.
Pernyataan SQL nya adalah sbb:
select * from mahasiswa where nim between 2010112 and 2010114
Lihat gambar di bawah ini untuk melihat hasilnya:|

sumber : http://www.xbasicpro.com/training/mssql/mssql_in_between.aspx

Tidak ada komentar:

Posting Komentar