Mengatasi Full join dengan Union
Pada permasalahan kali ini saya berbagi pengalaman yang sering saya hadapi. ketika kita ingin mencari data, dimana kita ingin 2 tabel dengan data² yang saling berkaitan
misal:
Tabel 1 dgn nama: "tbl_kota"
Tabel 2 dgn nama "tbl_propinsi"
kita ingin mengetahui pada tabel 1 yang tidak ada nilainya dan tabel 2 yang tidak berkaitan dengan tabel pertama, sehingga kita dapat mengetahui nilai yang null, dan ini bisa digunakan jika kita ingin cross cek data.
pada tabel diatas kita punya 2 tabel dengan struktur yang sama bagaimana kita ingin mengetahui jika tabel 1 tidak sama dengan tabel 2. dan bisa kita relasikan yaitu "id_propinsi" di tabel 1 dan "id_prop" di tabel 2.
pada suatu kasus diatas kita cross cek dua tabel tersebut dengan mengginakan query "full join". begini skrip code-nya:
saya pikir cara ini akan berhasil., ternyata di beberapa SQL server tidak bisa mengeksekusi query diatas,
maka saya coba dengan query union seperti ini :
dari query diatas maka dihasilkan data seperti ini:
maka kita akan menemukan data yang kita inginkan yang bernilai null adalah data yang kosong..
Semoga Membantu Kawan...!!
misal:
Tabel 1 dgn nama: "tbl_kota"
id_kota
|
nama_kota
|
id_propinsi
|
101
| surabaya |
1
|
102
| gresik |
1
|
103
| kebumen |
2
|
104
| semarang |
2
|
105
| jogjakarta |
3
|
106
| bogor |
4
|
107
| banten |
5
|
Tabel 2 dgn nama "tbl_propinsi"
id_prop
|
nama_prop
|
1
| jawa timur |
2
| jawa tengah |
4
| jawa barat |
7
| jakarta |
8
| sumatera utara |
kita ingin mengetahui pada tabel 1 yang tidak ada nilainya dan tabel 2 yang tidak berkaitan dengan tabel pertama, sehingga kita dapat mengetahui nilai yang null, dan ini bisa digunakan jika kita ingin cross cek data.
pada tabel diatas kita punya 2 tabel dengan struktur yang sama bagaimana kita ingin mengetahui jika tabel 1 tidak sama dengan tabel 2. dan bisa kita relasikan yaitu "id_propinsi" di tabel 1 dan "id_prop" di tabel 2.
pada suatu kasus diatas kita cross cek dua tabel tersebut dengan mengginakan query "full join". begini skrip code-nya:
1
| select a.*,b.* from tbl_kota a full join tbl_propinsi b on a.id_propinsi = b.id_prop |
maka saya coba dengan query union seperti ini :
1
2
3
4
5
6
7
| select * from ( select a.*,b.* from tbl_kota a left join tbl_propinsi b on a.id_propinsi = b.id_prop Union select a.*,b.* from tbl_kota a right join tbl_propinsi b on a.id_propinsi = b.id_prop ) hasil |
dari query diatas maka dihasilkan data seperti ini:
id_kota
|
nama_kota
|
id_propinsi
|
id_prop
|
nama_prop
|
101
| surabaya |
1
|
1
|
jawa timur
|
102
| gresik |
1
|
1
|
jawa timur
|
103
| kebumen |
2
|
2
|
jawa barat
|
104
| semarang |
2
|
2
|
jawa barat
|
105
| jogjakarta |
3
|
null
|
null
|
106
| bogor |
4
|
4
|
jawa barat
|
107
| banten |
5
|
null
|
null
|
null
| null |
null
|
7
|
jakarta
|
null
| null |
null
|
8
|
sumatera utara
|
maka kita akan menemukan data yang kita inginkan yang bernilai null adalah data yang kosong..
Semoga Membantu Kawan...!!
Mengatasi Full join dengan Union
Reviewed by
yunanto
on
Kamis, November 27, 2014
Rating:
Tidak ada komentar :