Tuesday, May 26, 2015

การดึงข้อมูลหลายๆ เงื่อนไขด้วย ตัวเชื่อม AND & OR Operators



The AND operator displays a record if both the first condition AND the second condition are true.
The OR operator displays a record if either the first condition OR the second condition is true.
คำสั่ง WHERE ครั้งที่แล้วเป็นการดึงข้อมูลเพียงแค่เงื่อนไขเดียว แต่ในบางครั้งเราต้องการดึงข้อมูลหลายๆเงื่อนไข ดังนั้นคำสั่ง SQL จึงมีตัวเชื่อม AND กับ OR มาให้ใช้  แปลกันตรงตัวนะครับ 

AND แปลว่า "และ"  ในการใช้งานก็คือการที่ต้องการเงื่อนไขที่ถูกต้องทั้งสองตัว

OR แปลว่า "หรือ"      ใช้ในการที่ต้องการเงื่อนไขที่ถูกต้องอย่างใดอย่างนึงก็ได้

เหมือนเดิมครับ เราใช้ฐานข้อมูล Northwind กับตารางชื่อว่า Customers


CustomerID
CustomerName
ContactName
Address
City
PostalCode
Country
1
Alfreds Futterkiste
Maria Anders
Obere Str. 57
Berlin
12209
Germany
2
Ana Trujillo Emparedados y helados
Ana Trujillo
Avda. de la Constitución 2222
México D.F.
05021
Mexico
3
Antonio Moreno Taquería
Antonio Moreno
Mataderos 2312
México D.F.
05023
Mexico
4
Around the Horn
Thomas Hardy
120 Hanover Sq.
London
WA1 1DP
UK
5
Berglunds snabbköp
Christina Berglund
Berguvsvägen 8
Luleå
S-958 22
Sweden


ตัวอย่างที่ 1 
เราต้องการข้อมูลลูกค้าทั้งหมดที่มาจากประเทศ "Germany" และมาจากเมือง "Berlin" จากตาราง Customers



คำสั่ง SQL จะเป็นแบบนี้ครับ
 
SELECT * FROM Customers            {เลือกจากตาราง Customers ด้วยคำสั่ง SELECT ทั้งหมด ก็คือ * }
WHERE Country='Germany' AND City='Berlin';   {จากคอลัมน์ Country ที่มีค่าเป็น Germany กับ City ที่มีค่าเป็น Berlin}

ดังนั้นค่าที่ได้จะต้องมาจากทั้ง Country ที่เป็น Germany และ City ที่มาจาก Berlin


CustomerID
CustomerName
ContactName
Address
City
PostalCode
Country
Alfreds Futterkiste 
Maria Anders 
Obere Str. 57 
Berlin 
12209 
Germany 

ตัวอย่างที่ 2
เราต้องการดึงข้อมูลลูกค้าทั้งหมดที่มาจาก เมือง Berlin หรือ  München จากตาราง Customers

คำสั่ง SQL จะเป็นแบบนี้ครับ

SELECT * FROM Customers
WHERE City='Berlin' OR City='München'; 
ก็จะได้ข้อมูลนี้ครับ
CustomerID
CustomerName
ContactName
Address
City
PostalCode
Country
Alfreds Futterkiste 
Maria Anders 
Obere Str. 57 
Berlin 
12209 
Germany 
25 
Frankenversand 
Peter Franken 
Berliner Platz 43 
München 
80805 
Germany 
 
ตัวอย่างที่ 3 เป็นการใช้ AND กับ OR ร่วมกัน


สมมติว่าเราอยากได้ข้อมูลลูกค้าทั้งหมดที่มาจาก ประเทศ Germany และที่มาจากเมือง Berlin หรือ 
München ก็ได้



คำสั่ง SQL จะเป็นแบบนี้ครับ

SELECT * FROM Customers
WHERE Country='Germany' AND (City='Berlin' OR City='München');



ข้อมูลที่เราได้จะเป็นแบบนี้ครับ

CustomerID
CustomerName
ContactName
Address
City
PostalCode
Country
Alfreds Futterkiste 
Maria Anders 
Obere Str. 57 
Berlin 
12209 
Germany 
25 
Frankenversand 
Peter Franken 
Berliner Platz 43 
München 
80805 
Germany