PHP ลบข้อมูล 2 ตารางพร้อมกัน ด้วย SQL คำสั่งเดียว บทความนี้สอนการเขียนคำสั่ง SQL เพื่อลบข้อมูล 2 ตารางพร้อมกัน ด้วยภาษา PHP ร่วมกับฐานข้อมูล MySQL/MariaDB แบบ SQL เดียว สามารถเขียนโปรแกรมได้ดังนี้
ตัวอย่าง ข้อมูลในตาราง category และ book
ตาราง category
+--------+-------------+
| cgy_id | cgy_name |
+--------+-------------+
| 1 | Programming |
| 2 | Networking |
+--------+-------------+
ตาราง book
+---------+-------------+-------------+
| book_id | book_name | book_cgy_id |
+---------+-------------+-------------+
| 1 | PHP & MySQL | 1 |
| 2 | Python | 1 |
| 3 | SQL | 2 |
| 4 | Java | 2 |
+---------+-------------+-------------+
ตัวอย่าง PHP ลบข้อมูล 2 ตารางพร้อมกัน ด้วย SQL คำสั่งเดียว
<?php
$c = mysqli_connect("localhost", "root", "", "demo");
$cgy_id = 1;
$sql = "
DELETE category, book
FROM
category, book
WHERE
( cgy_id = book_cgy_id ) AND
( cgy_id = '{$cgy_id}' )
";
$q = mysqli_query( $c, $sql );
if( $q ) {
echo "ลบข้อมูล 2 ตารางเรียบร้อย";
}
mysqli_close( $c );
?>
ผลลัพธ์
ลบข้อมูล 2 ตารางเรียบร้อย
PHP ลบข้อมูล 2 ตารางพร้อมกัน ตัวอย่างต้องการลบข้อมูลจากตาราง category และ book เงื่อนไขคือ ลบข้อมูลจากตาราง category ที่มี id = 4 และตาราง book ที่มี book_cgy_id = 4 เหมือนกัน สามารถเขียนคำสั่งได้่ดังนี้
1. DELETE category, book FROM category, book คือ สั่งลบข้อมูลในตาราง category และ book
2. WHERE ( cgy_id = book_cgy_id ) คือ ลบ 2 ตารางพร้อมกัน ถ้า cgy_id มีค่าเท่ากับ book_cgy_id
3. AND ( cgy_id = '{$cgy_id}' ) คือ ลบเฉพาะ cgy_id ที่มีค่าเท่ากับตัวแปร cgy_id (จากตัวอย่างคือ 1)