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

ตอบกระทู้

รูปแสดงอารมณ์
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
รูปแสดงอารมณ์อื่นๆ

BBCode เปิด
[img] เปิด
[url] เปิด
[Smile icon] เปิด

กระทู้แนะนำ
   

มุมมองที่ขยายได้ กระทู้แนะนำ: SQL Query - JOIN TABLE (การเชื่อมเทเบิล) Query ข้อมูลจากหลายตาราง

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

โดย บุคคลทั่วไป » 12/02/2023 11:24 am

Join ตารางไม่ใช่การเพิ่มข้อมูล ใช้สองตารางหรอ model ตามปีวิธีออกแบบตารางดูแปลกๆ

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

โดย n_posri » 02/02/2019 4:44 pm

สอบถามหน่อยครับ
หาอยากจะเชื่อมเทเบิล แต่ไม่ต้องการให้เพิ่มข้อมูลและตัวไหนไม่ตรงกันให้แสดงผลด้วครับต้องทำยังไง
AAAC.PNG
AAAC.PNG (36.54 KiB) Viewed 10506 times

By Jengpeng

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

โดย milekung » 02/02/2019 5:43 am

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 (การเชื่อมเทเบิล)

โดย N_T » 16/08/2013 11:20 am

ขอบคุณสำหรับความรู้ครับ :like:

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

โดย M013 » 14/08/2013 6:45 pm

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 15225 times
>> ต้องการทราบรหัสลูกค้าที่ทำการสั่งซื้อสินค้าในรหัสการสั่งซื้อ 05

โค้ด: เลือกทั้งหมด

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 15242 times
>> จากการแสดงผลข้างต้นต้องการหาชื่อลูกค้าที่มีรหัสดังกล่าว

โค้ด: เลือกทั้งหมด

SELECT cus_id, cus_name
FROM customer
WHERE cus_id = 'c006';
ภาพที่ 1.3 จากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
ภาพที่ 1.3 จากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
output_select2.jpg (22.72 KiB) Viewed 15242 times
*** จะเห็นว่าตัวอย่างข้างต้นเป็นการ SELECT ทีละตาราง เเละต้องทำการ SELECT ถึง 2 ครั้งกว่าจะได้ข้อมูลที่ต้องการ ดังนั้นการ Join Table สามารถลดขั้นตอนได้ดังนี้

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

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

โค้ด: เลือกทั้งหมด

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

โค้ด: เลือกทั้งหมด

SELECT cus_id, cus_name
FROM customer
WHERE cus_id = 'c006';
- เมื่อทำการ Join Table

โค้ด: เลือกทั้งหมด

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';

ข้างบน