Sabtu, 01 Februari 2014

Perintah Join Pada MySQL

Pada My SQL terdapat 4 buah perintah join, yaitu;
– Inner Join
– Outer Join
– Cross Join
– Union Join
a.       INNER JOIN
Tipe join ini akan mengambil semua row dari table asal dan table tujuan dengan kondisi nilai key yang terkait saja atau 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
b.      OUTER JOIN
OUTER JOIN merupakan tipe join yang mencari referensi data dari suatu table sumber ke table lain dengan tidak menghilangkan data sumber apabila referensi tidak diketemukan.

Untuk menggunakan tipe OUTER JOIN maka perlu memperhatikan beberapa hal berikut :
  • perlu dibedakan antara table sumber dan table referensi, ini ditentukan dengan cara menspesifikasikan kedudukan table sumber apakah di kiri (LEFT) atau di kanan (RIGHT).
  • jika tidak ada data dari table referensi yang cocok dengan kondisi join maka hanya data dari table sumber yang ditampilkan tetapi kolom-kolom table referensi akan berisi null.
c.       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 

d.      STRAIGHT JOIN

STRAIGHT_JOIN merupakan pengganti keyword JOIN pada MySQL yang digunakan untuk "memaksa" proses join table dari kiri (LEFT) ke kanan (RIGHT).

Contoh Penggunaan :

SELECT ms_cabang.*,
       ms_kota.nama_kota
FROM ms_cabang
STRAIGHT_JOIN ms_kota
ON ms_cabang.kode_kota = ms_kota.kode_kota  

0 komentar:

Posting Komentar