KangJaz.com

Tempat Tips, Tutorial dan Source Code dari seorang newbie

Menghapus Data Pada Dua Tabel atau Lebih dengan Satu Query

10 Desember 2016 | Kategori : PHP

Pada Kesempatan kali ini saya akan berbagi bagaimana cara menghapus data dari dua tabel atau lebih dengan menggunakan satu query. Tentunya kita akan menggunakan Query "DELETE", namun kita akan melakukan sedikit manipulasi pada Query tersebut.

php.jpg

Sebagai contoh saya mempunyai dua buah tabel pada database, tabel pertama adalah t_user dan tabel kedua adalah t_tinggi, untuk datanya bisa dilihat pada gambar di bawah ini :

del-1.png

data t_user


del-2.png

data t_tinggi

Nah, rencananya nanti saya akan menghapus data yang mempunyai id 1 pada t_user dan id_user 1 pada t_tinggi, pada umumnya kita bisa menggunakan query di bawah ini :

<?php

$con    = new mysqli('localhost', 'root', '', 'tes');

$sql    = "DELETE FROM t_user WHERE id = 1";
$sql2   = "DELETE FROM t_tinggi WHERE id_user = 1";

$exe    = mysqli_query($con, $sql);
$exe2  = mysqli_query($con, $sql2);

?>

Namun query di atas dinilai kurang efektif karena server harus melakukan dua kali eksekusi, nah jika kita ingin menghapusnya dengan sekali query kita bisa menggunakan query di bawah ini :

Query 1

<?php

$con  = new mysqli('localhost', 'root', '', 'tes');

$sql   = "DELETE a*, b* FROM t_user a, t_tinggi b WHERE a.id = 1 AND b.id_user = 1";

$exe  = mysqli_query($con, $sql);

?>

atau bisa juga seperti ini :

Query 2

<?php

$con = new mysqli('localhost', 'root', '', 'tes');

$sql = "DELETE a.*, b.* FROM t_user a JOIN t_tinngi b ON a.id = b.id_user WHERE a.id = 1";

$exe = mysqli_query($con, $sql);

?>

dengan Query ke 1 kita bisa menghapus data dari dua tabel atau lebih meski data dari kedua tabel tersebut tidak memiliki relasi atau bisa dibilang tidak mempunyai field dengan value sama, sementara dengan Query ke 2 kedua tabel harus mempunyai relasi karena pada Query 2 kita memanfaatkan JOIN.

Nah gimana sob? lebih mudahkan? dengan memanfaatkan Query 1 atau Query 2 maka server akan melakukan sekali eksekusi dan itu lebih efektif dibandingkan jika server melakukan 2 kali eksekusi. Jika kita menggunakannya di server local mungkin tidak terasa bedanya, namun jika server diakses oleh banyak orang pasti beda lagi.

Mungkin cuma itu sob yang bisa saya bagi kali ini, dan semoga sedikit coretan ini bisa bermanfaat bagi sobat semua.

CMIIW