Devdit
 

JOIN กับ INNER JOIN ต่างกันยังไง

299

JOIN กับ INNER JOIN ต่างกันยังไง คำตอบคือไม่แตกต่างกันในแง่ของผลลัพธ์ ใน SQL คำสั่ง JOIN และ INNER JOIN คือการรวมข้อมูลจากตารางทั้ง 2 ตารางที่มีความสัมพันธ์กันผ่าน primary key และ foreign key ส่วนความแตกต่างคือ ความชัดเจน และง่ายต่อการอ่านโค้ด การใช้ INNER JOIN อาจเป็นทางเลือกที่ควรพิจารณาก่อน มีรายละเอียดดังนี้

 

ตัวอย่าง ตาราง products และ categorys

1. ตาราง products มี id เป็น primary key และ category_id เป็น foreign key

+----+--------------+--------+-------------+
| id | title        | price  | category_id |
+----+--------------+--------+-------------+
|  1 | Computer     | 200.00 |           1 |
|  2 | Notebook     | 180.00 |           1 |
|  3 | Mobile phone | 100.00 |           2 |
|  4 | iPad         | 300.00 |           2 |
+----+--------------+--------+-------------+

2. ตาราง categorys มี id เป็น primary key

+----+-----------+
| id | title     |
+----+-----------+
|  1 | Computer  |
|  2 | Gadget    |
+----+-----------+

 

ตัวอย่าง การใช้ JOIN และ INNER JOIN กับตาราง products และ categorys

SELECT *
FROM products p 
JOIN categorys c ON ( p.category_id = c.id ) 
SELECT *
FROM products p 
INNER JOIN categorys c ON ( p.category_id = c.id )

ผลลัพธ์

+----+--------------+--------+-------------+----+-----------+
| id | title        | price  | category_id | id | title     |
+----+--------------+--------+-------------+----+-----------+
|  1 | Computer     | 200.00 |           1 |  1 | Computer  |
|  2 | Notebook     | 180.00 |           1 |  1 | Computer  |
|  3 | Mobile phone | 100.00 |           2 |  2 | Gadget    |
|  4 | iPad         | 300.00 |           2 |  2 | Gadget    |
+----+--------------+--------+-------------+----+-----------+

จากตัวอย่าง SQL แตกต่างตรงที่ใช้ JOIN กับ INNER JOIN ระหว่าง field category_id (foreign key) ของตาราง products กับ field id (primary key) ของตาราง categorys ได้ผลลัพธ์ที่เหมือนกัน หากต้องการความชัดเจนในการอ่านโค้ด SQL อาจพิจารณาเลือกใช้ INNER JOIN ก็เป็นทางเลือกที่เหมาะสม

สรุป บทความนี้เราได้เรียนรู้ว่าคำสั่ง SQL ระหว่าง JOIN กับ INNER JOIN นั้นในแง่ของผลลัพธ์คือไม่แตกต่างกัน หากใครที่ต้องการเขียนสั้นๆ ก็แนะนำ JOIN หากใครที่ต้องการเขียนให้ชัดเจน และง่ายต่อการอ่านโค้ด SQL การใช้ INNER JOIN อาจเป็นทางเลือกที่เหมะสมกว่า

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