SQL LEFT JOIN
เป็นคำสั่งที่ใช้สำหรับการระบุเงื่อนไขการเลือกข้อมูลในตาราง (Table) โดยเงื่อนไขการ LEFT JOIN จะทำการเลือกข้อมูลหลักและข้อมูลเชื่อมโยงที่สัมพันธ์กัน โดยจะทำการอิงจาก Table แรกสำคัญก่อน ถ้าไม่มีข้อมูลใน Table แรก ข้อมูล Table สองจะไม่ถูกสนใจและจะสนใจข้อมูลแค่ Table แรกเท่านั้น
Syntax
SELECT [Table-Name1].Column1, [Table-Name2].Column1,... FROM [Table-Name1]
LEFT JOIN [Table-Name2] ON [Table-Name1].Column = [Table-Name2].Column
LEFT JOIN [Table-Name2] ON [Table-Name1].Column = [Table-Name2].Column
Table : customer
CustomerID
|
Name
|
Email
|
CountryCode
|
Budget
|
Used
|
|---|---|---|---|---|---|
C001
| Win Weerachai | win.weerachai@thaicreate.com |
TH
| 1000000 | 600000 |
C002
| John Smith | john.smith@thaicreate.com |
EN
| 2000000 | 800000 |
C003
| Jame Born | jame.born@thaicreate.com |
US
| 3000000 | 600000 |
C004
| Chalee Angel | chalee.angel@thaicreate.com |
US
| 4000000 | 100000 |
C006
| Superman Return | supermain.return@thaicreate.com |
US
| 2000000 | 0 |
Table : audit
AuditID
|
CustomerID
|
Date
|
Used
|
|---|---|---|---|
1
|
C001
|
2008-07-01
| 100000 |
2
|
C001
|
2008-07-05
| 200000 |
3
|
C001
|
2008-07-10
| 300000 |
4
|
C002
|
2008-07-02
| 400000 |
5
|
C002
|
2008-07-07
| 100000 |
6
|
C002
|
2008-07-15
| 300000 |
7
|
C003
|
2008-07-20
| 400000 |
8
|
C003
|
2008-07-25
| 200000 |
9
|
C004
|
2008-07-04
| 100000 |
10
|
C005
|
2008-07-04
| 200000 |
Sample1 การเลือกข้อมูลแบบ LEFT JOIN ตาราง customer และ audit
SELECT customer.*,audit.* FROM customer
LEFT JOIN audit ON customer.CustomerID = audit.CustomerID
LEFT JOIN audit ON customer.CustomerID = audit.CustomerID
Output
|
CustomerID
|
Name
|
Email
|
Budget
|
Used
|
AuditID
|
CustomerID
|
Date
|
|
C001
|
Win Weerachai
|
win.weerachai@thaicreate.com
|
1000000
|
600000
|
1
|
C001
|
2008-08-01
|
|
C001
|
Win Weerachai
|
win.weerachai@thaicreate.com
|
1000000
|
600000
|
2
|
C001
|
2008-08-05
|
|
C001
|
Win Weerachai
|
win.weerachai@thaicreate.com
|
1000000
|
600000
|
3
|
C001
|
2008-08-10
|
|
C002
|
John Smith
|
john.smith@thaicreate.com
|
2000000
|
800000
|
4
|
C002
|
2008-08-02
|
|
C002
|
John Smith
|
john.smith@thaicreate.com
|
2000000
|
800000
|
5
|
C002
|
2008-08-07
|
|
C002
|
John Smith
|
john.smith@thaicreate.com
|
2000000
|
800000
|
6
|
C002
|
2008-08-15
|
|
C003
|
Jame Born
|
jame.smith@thaicreate.com
|
3000000
|
600000
|
7
|
C003
|
2008-08-20
|
|
C003
|
Jame Born
|
jame.smith@thaicreate.com
|
3000000
|
600000
|
8
|
C003
|
2008-08-25
|
|
C004
|
Chalee Angel
|
chalee.angel@thaicreate.com
|
4000000
|
100000
|
9
|
C004
|
2008-07-04
|
|
C006
|
Superman Return
|
supermain.return@thaicreate.com
|
2000000
|
0
|
NULL
|
NULL
|
NULL
|
Sample2 การเลือกข้อมูลแบบ LEFT JOIN ตาราง customer และ audit และ CustomerID = C001
SELECT customer.*,audit.* FROM customer
LEFT JOIN audit ON customer.CustomerID = audit.CustomerID
WHERE customer.CustomerID = 'C001'
LEFT JOIN audit ON customer.CustomerID = audit.CustomerID
WHERE customer.CustomerID = 'C001'
Output
|
CustomerID
|
Name
|
Email
|
Budget
|
Used
|
AuditID
|
CustomerID
|
Date
|
|
C001
|
Win Weerachai
|
win.weerachai@thaicreate.com
|
1000000
|
600000
|
1
|
C001
|
2008-08-01
|
|
C001
|
Win Weerachai
|
win.weerachai@thaicreate.com
|
1000000
|
600000
|
2
|
C001
|
2008-08-05
|
|
C001
|
Win Weerachai
|
win.weerachai@thaicreate.com
|
1000000
|
600000
|
3
|
C001
|
2008-08-10
|
Sample3 การเลือกข้อมูลแบบ LEFT JOIN ตาราง customer และ audit และ CustomerID = C001 และแสดงผลเฉพาะตาราง audit
SELECT audit.* FROM customer
LEFT JOIN audit ON customer.CustomerID = audit.CustomerID
WHERE customer.CustomerID = 'C001'
LEFT JOIN audit ON customer.CustomerID = audit.CustomerID
WHERE customer.CustomerID = 'C001'
Output
AuditID
|
CustomerID
|
Date
|
Used
|
|---|---|---|---|
1
|
C001
|
2008-08-01
| 100000 |
2
|
C001
|
2008-08-05
| 200000 |
3
|
C001
|
2008-08-10
| 300000 |
ไม่มีความคิดเห็น:
แสดงความคิดเห็น