Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

การลบค่าระหว่างตารางด้วย LEFT JOIN ใน MySQL

คำนวณความต่างของราคาสินค้าระหว่างสองช่วงเวลา

ใช้ LEFT JOIN เพื่อนำข้อมูลจากตารางราคาปัจจุบันมาลบกับตารางราคาเก่า โดยจับคู่ด้วย ID สินค้า

ข้อมูลตัวอย่าง

ตาราง value_curdate (ราคาปัจจุบัน)

+----+----------+-------+
| Id | Product  | Price |
+----+----------+-------+
| 1  | Notebook | 100   |
| 2  | Pen      | 40    |
| 3  | Pencil   | 65    |
+----+----------+-------+

ตาราง value_prevdate (ราคาเก่า)

+----+-----------+-------+
| Id | Product   | Price |
+----+-----------+-------+
| 1  | Notebook  | 85    |
| 2  | Pen       | 34    |
| 3  | Pencil    | 56    |
| 4  | Colors    | 65    |
| 5  | Fevistick | 25    |
+----+-----------+-------+

คำสั่ง SQL

SELECT 
    value_curdate.id,
    value_curdate.product,
    value_curdate.price AS Curprice,
    value_prevdate.price AS prevprice,
    value_curdate.price - value_prevdate.price AS Difference
FROM value_curdate 
LEFT JOIN value_prevdate ON value_curdate.id = value_prevdate.id;

ผลลัพธ์

+----+----------+----------+-----------+------------+
| id | product  | Curprice | prevprice | Difference |
+----+----------+----------+-----------+------------+
| 1  | Notebook | 100      | 85        | 15         |
| 2  | Pen      | 40       | 34        | 6          |
| 3  | Pencil   | 65       | 56        | 9          |
+----+----------+----------+-----------+------------+

ข้อสังเกต

  • LEFT JOIN เก็บข้อมูลฝั่งซ้าย (ราคาปัจจุบัน) ไว้ทั้งหมด
  • สินค้าที่ไม่มีในตารางเก่า (Colors, Fevistick) จะไม่แสดงในผลลัพธ์
  • ใช้ได้กับการเปรียบเทียบข้อมูลระหว่างสองช่วงเวลา