ตามหัวข้ออ่ะ อยากรู้ว่าสั่งยังไงใน SQL แล้วก็มีไว้ทำไม??
ตามหัวข้ออ่ะ อยากรู้ว่าสั่งยังไงใน SQL แล้วก็มีไว้ทำไม??
ที่ถามหมายถึงการ join table โดยใช้ภาษา SQL หรือเปล่า
ถ้าใช่ก็ประมาณนี้นะครับ
การ join table ใน SQL จะทำในบรรทัดของ FROM ของ SELECT clause ครับ
แต่การ join ใน SQL จะเหมือนการทำ CROSS ตารางกันดังนี้
กำหนด
T1
id1|name1
-------------
1 | A
2 | B
T2
id2|name2
-------------
3 | C
4 | D
เมื่อ CROOS กันจะได้ตารางดังนี้ T1 x T2 =
id1 | name1 | id2 | name2
-------------------------------
1 | A | 3 | C
2 | B | 3 | C
1 | A | 4 | D
2 | B | 4 | D
รูปแบบทั่วไปของ SELECT clause จะเป็นดังนี้
SELECT *
FROM T1,T2; <- บรรทัดนี้จะทำการ CROSS TABLE T1 กับ T2 เข้าด้วยกัน
WHERE id1 < 3;
ขั้นตอนการทำงานของคำสั่ง SELECT clause จะเป็นดังนี้
1. เริ่มทำที่บรรทัด FROM คือจะนำตารางที่อยู่ในบรรทัด FROM มา CROSS กันทั้งหมด
2. ไปดูบรรทัด SELECT ว่าต้องการจะแสดง COLUMN ไหนบ้าง
3. จากนั้นจะนำเงื่อนไขในบรรทัด WHERE ไปดูว่าตรง tuple ไหนในตารางที่ได้จากการ CROSS ในข้อ 1
แล้วจะทำการดึง tuple ที่ตรงกับเงื่อนไขนั้นออกมาแสดง
ทั้งหมดนี่เป็นการอธิบายคร่าวๆนะครับว่าขั้นตอนการ join table ให้ออกมาอยู่ในรูปที่ต้องการทำยังไงด้วยภาษา SQL
พอดีเคยเขียน compiler ภาษา SQL เลยพอรู้มาบ้างว่าขั้นตอนจริงๆมันทำยังไง
ถ้าอยากได้ข้อมูลการ join เพิ่มสามารถไปดูได้ที่นี่
http://www.firstsql.com/tutor2.htm
Actions : (View-Readers)
There are no names to display.