Page 1 of 1

SQL Query - JOIN TABLE (การเชื่อมเทเบิล) Query ข้อมูลจากหลายตาราง

Posted: 14/08/2013 6:45 pm
by M013
JOIN TABLE (การเชื่อมเทเบิล) - Query ข้อมูลจากหลายตาราง
การใช้คำสั่ง 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)
ภาพที่ 1.1 ตารางข้อมูลลูกค้า เเละ ตารางข้อมูลการสั่งสินค้า
ภาพที่ 1.1 ตารางข้อมูลลูกค้า เเละ ตารางข้อมูลการสั่งสินค้า
table_cusANDorder.jpg (149.88 KiB) Viewed 8093 times
>> ต้องการทราบรหัสลูกค้าที่ทำการสั่งซื้อสินค้าในรหัสการสั่งซื้อ 05

Code: Select all

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

Code: Select all

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

By Jengpeng