04 | left join 3 table

March 2009 | By platoosom | MySQL | Tags :

การ join กันมากกว่า 2 ตารางนั้น ไม่ได้มีอะไรยุ่งยากอย่างที่คิด วิธีการก็แค่ เขียน join ต่อกันไปเรื่อยๆ ยกตัวอย่างนะครับ ถ้าสมมติว่า ผมมี ตารางในฐานข้อมูล อยู่ 3 ตาราง คือ province , amphur , tumbol เก็บ จังหวัด อำเภอ ตำบล ตามลำดับ

 

และทีนี้ ผมต้องการ เอารายชื่อตำบลมาแสดง โดยให้แสดงจังหวัด และอำเภอ ด้วย ซึ่งจังหวัดและอำเภอนั้น ก็เก็บแยกกันไว้ ตามตารางด้านบน งานนี้เลยต้อง join กัน 3 ตาราง

 

1
2
3
SELECT * FROM tumbol 
	LEFT JOIN amphur ON (tumbol.amphur_id=amphur.amphur_id)
	LEFT JOIN province ON (amphur.province_id=province.province_id)

 

เท่านี้แหละครับ จะเห็นว่าเราสามารถต่อ LEFT JOIN ไปได้เรื่อยๆ

บทความน่าสนใจ

  1. การใช้ left join ภาษา sql
  2. การใช้ inner join ภาษา sql
  3. SQL Join
  4. ฟังก์ชั่นต่อข้อความของ MySQL
  5. Navicat – Preview การติดตั้งโปรแกรม Navicat
Tags:

มี 5 ความเห็น ในบทความเรื่อง “left join 3 table”

  1. Suphark says:

    “SELECT Material.Description, Category.Name as Category, Company.Name FROM Material LEFT JOIN Category ON (Material.CategoryID = Category.ID) LEFT JOIN Company ON (Material.CompanyID = Company.ID) ”

    พิมพ์ตามนี้ไปแล้ว มันยังขึ้น error ว่า

    Syntax error (missing operator) in query expression ‘(Material.CategoryID = Category.ID) Left Join Company ON (Material.companyID = Company.ID)’.

    ปล ใช้ Visual basic 2008 เรียกข้อมูลจาก Access

  2. platoosom says:

    ผมว่าปัญหาน่าจะเกิดจากตรงนี้

    Category.Name as Category

    ลองเปลี่ยนเป็น Category.Name as Category_Name

    ดูนะครับ

  3. Suphark says:

    “SELECT Material.Description, Category.Name as Category, Company.Name FROM (Material LEFT JOIN Category ON Material.CategoryID = Category.ID) LEFT JOIN Company ON Material.CompanyID = Company.ID ”

    ได้ล่ะครับขอบคุณมาก ต้องใส่วงเล็บแบบนี้อ่ะครับ เหมือนคิดเลข
    (((Left join 1) Left join2) Left join 3)

  4. platoosom says:

    แสดงว่าฐานข้อมูลที่ใช้เป็น Access ถ้าเป็นฐานข้อมูล Mysql สามารถ join กันได้โดยไม่ต้องใส่วงเล็บครอบ แต่ถ้าเป็นของไมโครซอฟต์ จะต้องครอบวงเล็บให้ดี ไม่ว่าจะเป็น Access หรือ sql server

  5. platoosom says:

    อ่าว เพิ่งเห็นว่าโพสต์ข้างบนบอกว่าเป็น Access

แสดงความเห็น

ชื่อ *
Email *
Website
ความคิดเห็น