Cross Join dalam SQL
Full Join :
Apabila Anda punya 2 (dua) table yaitu tabel A dan tabel B.
Tabel A : Berisi nama-nama person.
Kode | Nama | Kota |
1001 | Udin | Surabaya |
1002 | Imul | Jakarta |
1003 | Dede | Jakarta |
1004 | Vina | Bandung |
1005 | Tutik | Semarang |
Tabel B : Berisi daftar kota.
Kota | Area |
Ambon | 0911 |
Surabaya | 031 |
Jakarta | 021 |
Yogyakarta | 0274 |
Solo | 0271 |
Dengan perintah Full Join maka gabungan dari dua tabel tersebut seluruhnya akan ditampilkan, disini kita contohkan field “kota” sebagai kunci penghubung.
SELECT a.kode, a.nama, a.kota as kota_person, b.kota as daft_kota FROM tabelA a FULL JOIN tabelB b on a.kota=b.kota ORDER BY kode |
Maka tabel yang dihasilkan :
Kode | Nama | Kota_Person | Daft_Kota | Area |
null | null | null | Ambon | 0911 |
null | null | null | Yogyakarta | 0274 |
null | null | null | Solo | 0271 |
1001 | Udin | Surabaya | Surabaya | 031 |
1002 | Imul | Jakarta | Jakarta | 021 |
1003 | Dede | Jakarta | Jakarta | 021 |
1004 | Vina | Bandung | null | null |
1005 | Tutik | Semarang | null | null |
Hasil tabel tersebut terlihat, untuk kolom kota_person = “Bandung” dan “Semarang” mempunyai daft_kota dan Area yang bernilai “null” (tidak punya nilai). Sebab dua kota tersebut tidak terdaftar di tabel B.
Begitu pula dengan kolom Daft_kota = “Ambon”, “Yogyakarta”, “Solo” mempunyai Kode, nama, kota_person = “null”. Penyebabnya kota-kota tersebut terdaftar didalam tabel B tapi tidak ada dalam tabel A.
Jadi semua sudah jelas bagaimana cara menggunakan FULL JOIN.
CROSS JOIN :
Untuk memahami perintah ini saya berikan 2 (dua) tabel yang sederhana saja sebagai contoh.
Dari tabel diatas cuma saya ringkas saja garis relasinya, sebenarnya diteruskan sampai kode A = ‘1005′.
Jadi himpunan yang terbentuk dari CROSS JOIN di atas
hasil := {‘1001A’, ‘1001B’, ‘1001C’, ‘1002A’, ‘1002B’, ‘1002C’, …, ‘1005B’, ‘1005C’}.
Bentuk perintahnya sebagai berikut :
SELECT kodeA, kodeB FROM tabelA CROSS JOIN tabelB ORDER BY KodeA |
Tabel yang dihasilkan :
KodeA | KodeB |
1001 | A |
1001 | B |
1001 | C |
1002 | A |
1002 | B |
1002 | C |
1003 | A |
1003 | B |
1003 | C |
1004 | A |
1004 | B |
1004 | C |
1005 | A |
1005 | B |
1005 | C |
Demikian penjelasan mengenai FULL JOIN dan CROSS JOIN mudah-mudah bermanfaat bagi pembaca.
2 comments:
wah baru tau ada cross join, apalagi full join..
:D
Post a Comment