MySQL เข้าร่วม
MySQL เข้าร่วมตาราง
อนุ ประโยคJOIN
ใช้เพื่อรวมแถวจากตารางตั้งแต่สองตารางขึ้นไป โดยยึดตามคอลัมน์ที่เกี่ยวข้องระหว่างกัน
ลองดูการเลือกจากตาราง "คำสั่งซื้อ":
OrderID | CustomerID | OrderDate |
---|---|---|
10308 | 2 | 1996-09-18 |
10309 | 37 | 1996-09-19 |
10310 | 77 | 1996-09-20 |
จากนั้นดูการเลือกจากตาราง "ลูกค้า":
CustomerID | CustomerName | ContactName | Country |
---|---|---|---|
1 | Alfreds Futterkiste | Maria Anders | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mexico |
โปรดสังเกตว่าคอลัมน์ "CustomerID" ในตาราง "Orders" หมายถึง "CustomerID" ในตาราง "Customers" ความสัมพันธ์ระหว่างสองตารางข้างต้นคือคอลัมน์ "รหัสลูกค้า"
จากนั้น เราสามารถสร้างคำสั่ง SQL ต่อไปนี้ (ที่มี
INNER JOIN
) ซึ่งเลือกระเบียนที่มีค่าที่ตรงกันในทั้งสองตาราง:
ตัวอย่าง
SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers ON Orders.CustomerID=Customers.CustomerID;
และมันจะออกมาในลักษณะนี้:
OrderID | CustomerName | OrderDate |
---|---|---|
10308 | Ana Trujillo Emparedados y helados | 9/18/1996 |
10365 | Antonio Moreno Taquería | 11/27/1996 |
10383 | Around the Horn | 12/16/1996 |
10355 | Around the Horn | 11/15/1996 |
10278 | Berglunds snabbköp | 8/12/1996 |
ประเภทการเข้าร่วมที่รองรับใน MySQL
INNER JOIN
: ส่งกลับระเบียนที่มีค่าที่ตรงกันในทั้งสองตารางLEFT JOIN
: ส่งกลับระเบียนทั้งหมดจากตารางด้านซ้าย และระเบียนที่ตรงกันจากตารางด้านขวาRIGHT JOIN
: ส่งกลับระเบียนทั้งหมดจากตารางด้านขวา และระเบียนที่ตรงกันจากตารางด้านซ้ายCROSS JOIN
: ส่งกลับระเบียนทั้งหมดจากทั้งสองตาราง