Menghapus Data Dari Beberapa Tabel pada MySQL Menggunakan Satu Query


Menghapus Data Dari Beberapa Tabel pada MySQL Menggunakan Satu Query | Kangriyanto.net – MySQL merupakan salah satu Relational Database Management System (RDBMS) yang banyak dipakai, baik untuk keperluan pembelajaran maupun untuk kebutuhan pekerjaan. Database yang baik salah satunya ialah tidak adanya redundansi data, yaitu dapat dilakukan dengan me-normalisasi tabel. Dengan memecah tabel menjadi beberapa bagian lalu merelasikannya, maka kadang muncul suatu persoalan yaitu bagaimana menghapus data dari tabel yang berelasi hanya dengan menggunakan satu query saja.

Walaupun bisa dilakukan dengan menggunakan constraint ON DELETE CASCADE, tetapi tulisan ini fokus pada penggunaan query delete untuk menghapus data dari beberapa tabel yang berelasi hanya dengan satu query saja.

Untuk mempersingkat tutorial, disini saya akan gunakan struktur tabel yang sudah ada pada tutorial saya yang lain di sini https://kangriyanto.net/2020/03/09/melakukan-rekapitulasi-kehadiran-siswa-menggunakan-query-sql/

Data pada tabel Siswa dan Kehadiran

Lalu di sini kita akan menghapus data siswa bernama Budi Arianto beserta data kehadirannya. Kedua tabel tersebut (siswa dan kehadiran) direlasikan menggunakan field NIS. Sehingga untuk menghapusnya kita gunakan query berikut:

DELETE siswa, kehadiran
FROM siswa
JOIN kehadiran
ON siswa.nis = kehadiran.nis
AND siswa.nis = '223344'

Sehingga ketika lihat data dari kedua tabel, maka data atas nama Budi Arianto sudah tidak ada lagi.

Tinggalkan Komentar

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.