INNER JOIN คือคำสั่ง SQL สำหรับแสดงข้อมูลจาก 2 ตารางพร้อมกัน จาก field ที่มีความสัมพันธ์กัน โดย field ดังกล่าวจะมีคุณสมบัติเป็น primay key ตารางหนึ่ง และ foreign key อีกตารางหนึ่ง โดยจะแสดงเฉพาะข้อมูลที่เหมือนกันเท่านั้น ข้อมูลที่ไม่เหมือนจะไม่ถูกแสดง มีรายละเอียดดังนี้
ตัวอย่าง โครงสร้างตาราง products และ categorys
1. ตาราง products
2. ตาราง categorys
ตัวอย่าง INNER JOIN
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 เป็นการใช้ INNER JOIN เพื่อแสดงข้อมูลที่มีความสัมพันธ์กันระหว่างตาราง products และ categorys โดยมีรายละเอียดดังนี้
1. SELECT * คือ แสดงข้อมูลจากทุก field ของทั้ง 2 ตาราง
2. FROM products p คือ แสดงข้อมูลจากตาราง products กำหนดชื่อย่อ (alias) ว่า p
3. INNER JOIN categorys c คือ Join ตาราง products กับตาราง categorys กำหนดชื่อย่อว่า c แบบ INNER JOIN
4. ON ( p.category_id = c.id ) คือ กำหนดเงื่อนไขการ Join ให้ field category_id ของตาราง products Join กับ field id ของตาราง categorys