Page 1 of 1

JOIN TABLE (การเชื่อมเทเบิล)

Posted: 14/08/2013 6:45 pm
by M013
JOIN TABLE (การเชื่อมเทเบิล)
การใช้คำสั่ง SELECT ทั่วๆไปเป็นในการดึงข้อมูลข้อมูลจากตารางเดียว เเต่ในการปฏิบัติงานจริงเเล้ว อาจต้องมีการดึงข้อมูลจากหลายตาราง
โดยอาศัยคอลัมน์ที่ตรงกันของ 2 ตารางเป็นตัวเชื่อม (Foreign Key) วิธีการนี้เรียกว่า "Join Table" ซึ่งการ Join Table แบ่งออกได้เป็น 2 ประเภท ได้แก่
1. Inner Join ได้แก่ Equi, Self Join
2. Outer Join ได้แก่ Left Outer Join, Right Outer Join,

ตัวอย่างการใช้งาน (แบบยังไม่ Join Table)
table_cusANDorder.jpg
ภาพที่ 1.1 ตารางข้อมูลลูกค้า เเละ ตารางข้อมูลการสั่งสินค้า
table_cusANDorder.jpg (149.88 KiB) Viewed 7826 times

>> ต้องการทราบรหัสลูกค้าที่ทำการสั่งซื้อสินค้าในรหัสการสั่งซื้อ 05

Code: Select all

SELECT order_id, cus_id
FROM Order_product
WHERE order_id = '05';
output_select1.jpg
ภาพที่ 1.2 จากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
output_select1.jpg (21.22 KiB) Viewed 7843 times

>> จากการแสดงผลข้างต้นต้องการหาชื่อลูกค้าที่มีรหัสดังกล่าว

Code: Select all

SELECT cus_id, cus_name
FROM customer
WHERE cus_id = 'c006';
output_select2.jpg
ภาพที่ 1.3 จากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
output_select2.jpg (22.72 KiB) Viewed 7843 times

*** จะเห็นว่าตัวอย่างข้างต้นเป็นการ SELECT ทีละตาราง เเละต้องทำการ SELECT ถึง 2 ครั้งกว่าจะได้ข้อมูลที่ต้องการ ดังนั้นการ Join Table สามารถลดขั้นตอนได้ดังนี้

ตัวอย่างการใช้งาน
(แบบ Join Table)

- เปรียบเทียบ Code ที่ไม่ได้ทำการ Join Table

Code: Select all

SELECT order_id, cus_id
FROM Order_product
WHERE order_id = '05';

Code: Select all

SELECT cus_id, cus_name
FROM customer
WHERE cus_id = 'c006';

- เมื่อทำการ Join Table

Code: Select all

SELECT Order_product.order_id, Order_product.cus_id, Customer.cus_name
FROM Customer, Order_product
WHERE Customer.cus_id = Order_product.cus_id
AND order_id = '05';

Re: JOIN TABLE (การเชื่อมเทเบิล)

Posted: 16/08/2013 11:20 am
by N_T
ขอบคุณสำหรับความรู้ครับ :like:

Re: JOIN TABLE (การเชื่อมเทเบิล)

Posted: 02/02/2019 5:43 am
by milekung
SELECT Order_product.order_id, Order_product.cus_id, Customer.cus_name
FROM Customer INNER JOIN Order_product ON
Customer.cus_id = Order_product.cus_id
WHERE order_id = '05';

อีก 1 รูปแบบที่สามารถเขียนได้ครัล

Re: JOIN TABLE (การเชื่อมเทเบิล)

Posted: 02/02/2019 4:44 pm
by n_posri
สอบถามหน่อยครับ
หาอยากจะเชื่อมเทเบิล แต่ไม่ต้องการให้เพิ่มข้อมูลและตัวไหนไม่ตรงกันให้แสดงผลด้วครับต้องทำยังไง

AAAC.PNG
AAAC.PNG (36.54 KiB) Viewed 3107 times



By Jengpeng