CROSS JOIN คือคำสั่งที่ใช้จับคู่ทุกแถวจากตารางแรกกับทุกแถวจากตารางที่สอง โดยจะไม่ใช้เงื่อนไขการเชื่อม (ON) และผลลัพธ์จะเป็นการคูณจำนวนแถวทั้งหมดของทั้งสองตารางเข้าด้วยกัน
รูปแบบคำสั่ง
SELECT *
FROM table1
CROSS JOIN table2;
ผลลัพธ์ = จำนวนแถวของ table1 × จำนวนแถวของ table2 เช่น
table1มี 3 แถวtable2มี 4 แถวCROSS JOINจะได้ผลลัพธ์ 3 × 4 = 12 แถว
ตัวอย่างการใช้งาน
จับคู่รายชื่อลูกค้า 3 คนแรก กับภาพยนตร์ 2 เรื่องแรก
SQL
SELECT c.first_name, f.title
FROM customer AS c
CROSS JOIN film AS f
LIMIT 6;- ระบบจะนำลูกค้าแต่ละคนไปจับคู่กับภาพยนตร์แต่ละเรื่อง
- ถ้าไม่ได้ใช้
LIMITผลลัพธ์จะเยอะมาก เพราะฐานข้อมูล Sakila มีลูกค้า 599 ราย × ภาพยนตร์ 1000 เรื่อง = 599,000 แถว