Hai prenz … last post di taon 2010 nih…
Karena ada kesibukan … (ngodink) hehehehe
jadi ketemu deh permasalahan nya, dulu mah gak pernah terpikirkan gimana caranya untuk deleting record dengan subquerying …
Subquerying biasanya dilakukan dengan select statement mulu kalo di mysql, nah sekarang kejadian deh pengen delete record dengan kondisi yang di subquerying tersebut.
Contoh kasus nya adalah saya pengen menghapus record yang sama pada tanggal yang sama akan tetapi ada kondisi field yang berbeda.
contoh data :

Nah yang dikotak merahin itu diatas kebanyakan untuk field cause = cause_ori, maka saya ingin menghapus yang data cause = cause_ori nya
kalau di select dengan perintah dibawah ini :
select ab.nip, ab.dated, ab.cause, ab.cause_ori, count(ab.nip) as maxcount
from absence ab
inner join
( select nip, dated, cause, cause_ori
from absence
where cause <> cause_ori
group by nip, dated
order by nip, dated
) as a on ab.nip = a.nip and ab.dated = a.dated
group by ab.nip, ab.dated
having count(ab.nip) > 1
order by ab.nip, ab.dated
mendapatkan hasil seperti :
Bejibun kan datanya dan itu double kalo di scroll ke bawah bahkan ada yang triple, dan gak mungkin saya looping satu persatu untuk menghapus data tersebut.
Nah, sekarang bagaimana ingin menghapus records yang buanyak tersebut dengan menggunakan perintah SQL Statements ???
Setelah putar – puter otak dan RTFM, maka didapat SQL statemen untuk delete seperti dibawah ini :
delete deleted.* from absence as deleted
inner join
(
select ab.ab_id
from absence ab
inner join
( select nip, dated, cause, cause_ori
from absence
where cause <> cause_ori
group by nip, dated
order by nip, dated
) as a on ab.nip = a.nip and ab.dated = a.dated
group by ab.nip, ab.dated
having count(ab.nip) > 1
order by ab.nip, ab.dated
) as joined on deleted.ab_id = joined.ab_id
sudah deh, dengan meng-execute statement tersebut … semua data yang tidak diinginkan … lenyap dari permukaan harddisk
Segetoh dulu deh … dikhawatirkan lupa, mendingan sharing dengan teman-teman… siapa tahu ada yang perlu juga
Salam,
Man’z








Emg suhu mastah ini ga ada tandingannya… ^:)^
coretan akhir tahun aja kayak gini.. seepp bermanfaat kang
merinding bulu kuduk melihat SQL nya sang maestro ..
mantap kang
Aduh … bapak yang satu ini.
harusnya sekarang waktunya nyari kelemahan dari sebuah code kang, bukan kita yang code lagi, masa masa itu udah lewat
Punya sertifikasi hacking tapi ngga pernah dipake, cuma buat pajangan doang. Masa masih coding sih
Ayo kang berangkat…
Hehehe… Itu mah sebelum dapet certy nya.. Masih zaman zadoel…
Ok… Ok… Ok… Ntar ta posting nyank laen… Panan diforum dah.ada juga
Kan sesuai dengan daerahnya om pritox