MySQL การใช้งานคำสั่ง CROSS JOIN

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 แถว
แชร์เรื่องนี้