Devdit
 

PHP ลบข้อมูล 2 ตารางพร้อมกัน ด้วย SQL คำสั่งเดียว

2.6K

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)

แก้ไข 2 ปีที่แล้ว
ชอบ
ลิ้งก์
แชร์
Devdit มีช่อง YouTube แล้ว
เราสร้างวิดีโอเกี่ยวกับเทคโนโลยี ทำตามง่ายๆ