Selasa, 11 Januari 2011

SQL JOIN TABLE

Perintah DML(SELECT)
Perlu qta ketahui untuk menghasilkan informasi yang dibutuhkan tentu aja gak bisa qta akses hanya dari satu tabel aja, tapi kita harus mengambil dari beberapa tabel yang ada untuk itu perlu adanya JOIN TABLE dengan kata lain qta harus gabungkan kembali tabel-tabel yang ada.

Perhatikan struktur tabel dibawah ini:



JOIN TABLE

Misalkan qta ingin menampilkan tabel mata_kuliah dan dosen yang mengajar, jika hanya tabel mata_kuliah saja yang ditampilkan tentu qta tidak mengetahui siapa nama dosen yang mengajar hanya kode_dsn saja yang ditampilkan untuk itu qta perlu menggabungkan kedua tabel ini, dengan menggunakan perintah: …

SELECT [field_yg_ingin_ditampilkan 1], … , [field_yg_ingin_ditampilkan n]
FROM [nama_tabel 1] JOIN [nama_tabel 2];

Atau

SELECT [field_yg_ingin_ditampilkan 1], … , [field_yg_ingin_ditampilkan n]
FROM [nama_tabel 1] , [nama_tabel 2];

SELECT nama_mk, sks, nama_dsn
FROM mata_kuliah, dosen;

Dari hasil query di atas maka akan dihasilkan tampilan sebanyak jumlah recordset dari kedua tabel, untuk menyelesaikan permasalahan diatas kita bisa gunakan klausa WHERE …

SELECT nama_mk, sks, nama_dsn
FROM mata_kuliah, dosen
WHERE mata_kuliah.kode_dsn=dosen.kode_dsn;



INNER JOIN

Sama seperti perintah di atas qta dapat menampilkan data dengan menggunakan perintah INNER JOIN hanya saja penggunaan WHERE digantikan ON, …atau perintah USING. Dan perintah ini hanya menampilkan data yang saling berhubungan saja.

SELECT nama_mk, sks, nama_dsn
FROM mata_kuliah INNER JOIN dosen
ON mata_kuliah.kode_dsn=dosen.kode_dsn;

Atau

SELECT nama_mk, sks, nama_dsn
FROM mata_kuliah INNER JOIN dosen
USING(kode_dsn);

Catatan: perhatikan perbedaan kedua perintah diatas, “apa ada yang berbeda???” Bener banget, pada sat pengguaan ON qta harus menyertakan nama_tabel dari field yang menghubungkan kedua tabel atau pada saat ada field yang memiliki nama yang sama sedangkan penggunaan USING cukup field yang menghubungkan saja.
Dan satu lagi, qta juga bisa mengetikan tanpa INNER di dalam perintahnya ‘… FROM mata_kuliah JOIN dosen …’


OUTER JOIN

Perintah ini dibagi menjadi dua yaitu LEFT [OUTER] JOIN dan RIGHT [OUTER] JOIN, tanpa harus mengetikan OUTER juga bisa. Perintah ini untuk menampilkan seluruh data meskipun terdapat data yang tidak saling berhubungan.

LEFT JOIN

SELECT nama_mk, sks, nama_dsn
FROM mata_kuliah LEFT JOIN dosen
USING(kode_dsn);

Keterangan: tabel pertama yaitu tabel mata_kuliah menjadi tabel kiri(LEFT) dan tabel dosen menjadi tabel kanan(RIGHT);

RIGHT JOIN

SELECT nama_mk, sks, nama_dsn
FROM mata_kuliah RIGHT JOIN dosen
USING(kode_dsn);

Catatan: perhatikan benar-benar hasil dari perintah diatas, usahakan dalam mengisi kedua tabel tsb ada data yang tidak saling berhubungan untuk mengetahui perbedaan dari perintah yang dihasilkan.

Saya ingatkan kembali untuk banyak berlatih terus untuk mengasah kemampuan, meski gak banyak yang dikasih semoga dapat memahami yang sedikit ini.

Untuk latihan bagaimana jika ada 3 (tiga) atau 4 (empat) tabel yang dilibatkan untuk menampilkan sebuah data yang ada pada database… hmmm gimana yah! Ok itu buat tugasnya…buat aja laporan yang dihasilkan dari tiga atau empat tabel yang ada, SELAMAT MENCOBA …

Tidak ada komentar:

Posting Komentar