Melanjutkan artikel saya yang berjudul Konsep Himpunan Dalam SQL , disini saya akan melengkapi 2 (perintah) lagi yaitu Full Join dan Cross Join. Perintah ini merupakan salah satu bentuk kombinasi dari beberapa kombinasi dalam merelasikan 2 (tabel) atau lebih. Memang perintah ini sangat jarang dipakai, tapi tidak ada salahnya untuk saya tuliskan disini karena saya sendiri sebenarnya sudah lupa dengan dua perintah ini. Untung ada yang mengingatkan saya lewat komentar di artikel yang telah saya sebutkan di atas. Jadi walaupun nantinya saya lupa lagi masih bisa dibaca di artikel ini, dan mungkin ada pengunjung yang lebih bisa memanfaatkannya.
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.
Artikel lainnya
- Dasar-Dasar SQL 1
- Dasar-Dasar SQL 2
- Dasar-Dasar SQL 3
- Dasar-Dasar SQL 4
- Konsep Himpunan Dalam SQL
- Instalasi MySQL
- Koneksi Delphi ke SQL Server
- Full Join dan Cross Join dalam SQL
- Query Dalam Query
- Perintah EXISTS dalam SQL
- Perbedaan Perintah UNION dan UNION ALL dalam SQL
Filed under: SQL, Tips & Tricks , cross join, full join, join, SQL




makasih banget yah artikelnya……….
bener-bener bantu nieh,thanks
bikinin artikel koneksi ke vb dunks…….
MINTA PENGERTIAN MASING-MASING JOIN DONK?????
Sebelumnya salam kenal mas Jose Rizal…
Setelah seharian penat dengan query yang membingungkan, akhirnya saya menemukan blog ini yang menurut saya sungguh bermanfaat (paling tidak untuk saya pribadi) dan langsung deh “Add to Favorites…” hehehe
Oya mas saya mau nanya, kalo seandainya saya punya dua buah tabel katakanlah tabel A dan tabel B, dimana tabel A berisi data:
Kode – Nama – Total
1 – Kas – 100,000.00
2 – Pengeluaran – 20,000.00
3 – Pemasukan – 45,000.00
dan tabel B berisi data:
Kode – Nilai
2 – 10,000.00
2 – 7,500.00
3 – 30,000.00
2 – 2,500.00
3 – 15,000.00
Pertanyaan saya, query seperti apa yang harus saya pakai agar saya dapat menghasilkan tabel:
Kode – Nilai – Total
2 – 10,000.00 – 100,000.00
2 – 7,500.00 – 100,000.00
3 – 30,000.00 – 100,000.00
2 – 2,500.00 – 100,000.00
3 – 15,000.00 – 100,000.00
dimana Kode dan Nilai diambil dari seluruh tabel B dan Total hanya diambil dari kode 1 (Kas) pada tabel A? mohon pencerahannya.
Terima kasih.
ic.. jadi ngga bisa yah mas kalo pakai cross join? saya pikir bisa
ok, thx mas.
Paling bisa jd na ky gini :
Tb_A = Table A
Tb_C = Table B
SELECT A.kode,A.Nilai,B.Total FROM Tb_C A left JOIN Tb_A B on A.Kode = B.Kode;
Jd na :
Kode – Nilai – Total
2 – 10000 – 20000
2 – 7500 – 20000
3 – 30000 – 45000
2 – 2500 – 20000
3 – 15000 – 45000
Bos…kok sintaks FULL JOINYA g bisa diterapin di mysql yah???
pa mysql g bisa FULL JOIN????
tapi klo INNER JOIN or LEFT JOIN or RIGHT JOIN bisa di mysql…
tuh gimana???mohon bantuanya…