การจับคู่ตาราง INNER JOIN, OUTER JOIN, LEFT JOIN และ RIGHT JOIN


หน้าแรก PHP MySQL เกร็ดความรู้ การจับคู่ตาราง INNER JOIN, OUTER JOIN, LEFT JOIN และ RIGHT JOIN

คำสั่งในการจับคู่ตาราง จะใช้ร่วมกันกับคำสั่ง SELECT มีด้วยกัน 4 วิธีดังนี้
  1. INNER JOIN จะรวมข้อมูลที่เลือกเชื่อมต่อ
  2. OUTER JOIN จะรวมข้อมูลที่เลือกเชื่อมต่อ
  3. LEFT JOIN จะรวมข้อมูลที่ตรงกัน โดยจะเน้นตารางฝั่งซ้ายเป็นหลัก
  4. RIGHT JOIN จะรวมข้อมูลที่ตรงกัน โดยจะเน้นตารางฝั่งขวาเป็นหลัก

รูปแบบคำสั่ง INNER JOIN, OUTER JOIN, LEFT JOIN และ RIGHT JOIN
  1. /* แสดงข้อมูลในตาราง tb_name1 ของฟิลด์ filed_1, filed_2  และ tb_name2 ของฟิลด์ filed_3, fild_4 โดย primary_key ของ tb_name1 จะมีค่าเท่ากับ foreign_key ของ tb_name2  */
  2. /* INNER JOIN */
    SELECT tb_name1.primary_key, tb_name1.filed_2, tb_name2.filed_3, tb_name2.foreign_key FROM `tb_name1` INNER JOIN `tb_name2` ON tb_name1.primary_key=tb_name2.foreign_key;
  3. /* OUTER JOIN */SELECT tb_name1.primary_key, tb_name1.filed_2, tb_name2.filed_3, tb_name2.foreign_key FROM `tb_name1`, `tb_name2` WHERE tb_name1.primary_key=tb_name2.foreign_key;
  4. /* LEFT JOIN */SELECT tb_name1.primary_key, tb_name1.filed_2, tb_name2.filed_3, tb_name2.foreign_key FROM tb_name1 LEFT JOIN tb_name2 ON tb_name1.primary_key=tb_name2.foreign_key;
  5. /* RIGHT JOIN */SELECT tb_name1.primary_key, tb_name1.filed_2, tb_name2.filed_3, tb_name2.foreign_key FROM tb_name1 RIGHT JOIN tb_name2 ON tb_name1.primary_key=tb_name2.foreign_key;
ข้อมูลตัวอย่าง
ตาราง Categories
cate_idcate_name
1เครื่องใช้ไฟฟ้า
2เครื่องใช้สำนักงาน
3ยานพาหนะ
5เครื่องมือสือสาร
ตาราง Products 
prod_idprod_namecate_id
10รถยนต์3
11รถบรรทุก3
12โต๊ะ2
15คอมพิวเตอร์1
16เก้าอี้2
20ถ่าน AAA4

 

ตัวอย่าง INNER JOIN
  • SELECT categories.cate_name, products.prod_id, products.prod_name FROM categories INNER JOIN products ON categories.cate_id=products.cate_id;

จับคู่ตาราง Categories กับ Products 
cate_nameprod_namecate_id
เครื่องใช้ไฟฟ้า15คอมพิวเตอร์
เครื่องใช้สำนักงาน12โต๊ะ
เครื่องใช้สำนักงาน16เก้าอี้
ยานพาหนะ10รถยนต์
ยานพาหนะ11รถบรรทุก

 

ตัวอย่าง OUTER JOIN
  • SELECT categories.cate_name, products.prod_id, products.prod_name FROM categories, products WHERE categories.cate_id=products.cate_id;

จับคู่ตาราง Categories กับ Products 
cate_nameprod_namecate_id
เครื่องใช้ไฟฟ้า15คอมพิวเตอร์
เครื่องใช้สำนักงาน12โต๊ะ
เครื่องใช้สำนักงาน16เก้าอี้
ยานพาหนะ10รถยนต์
ยานพาหนะ11รถบรรทุก

ตัวอย่าง LEFT JOIN
     
  • SELECT categories.cate_name, products.prod_id, products.prod_name FROM categories LEFT JOIN products ON categories.cate_id=products.cate_id;

จับคู่ตาราง Categories กับ Products 
cate_nameprod_namecate_id
เครื่องใช้ไฟฟ้า15คอมพิวเตอร์
เครื่องใช้สำนักงาน12โต๊ะ
เครื่องใช้สำนักงาน16เก้าอี้
ยานพาหนะ10รถยนต์
ยานพาหนะ11รถบรรทุก
เครื่องมือสื่อสาร5ของใช้

 

ตัวอย่าง RIGHT JOIN
  • SELECT categories.cate_name, products.prod_id, products.prod_name FROM categories RIGHT JOIN products ON categories.cate_id=products.cate_id;

จับคู่ตาราง Categories กับ Products 
cate_nameprod_namecate_id
เครื่องใช้ไฟฟ้า15คอมพิวเตอร์
เครื่องใช้สำนักงาน12โต๊ะ
เครื่องใช้สำนักงาน16เก้าอี้
ยานพาหนะ10รถยนต์
ยานพาหนะ11รถบรรทุก
 20ถ่าน AAA

สามารถเลือกใช้กันตามความถนัด


จาก: http://www.genstyles.com/tips-19.html



ขึ้นไปด้านบน