รายงานต้องแสดงพนักงานที่ไม่มีข้อมูลในตาราง payroll ด้วย คำสั่งใดรักษาพนักงานทุกคนไว้

SELECT e.id, p.salary FROM employees e CROSS JOIN payroll p;
SELECT e.id, p.salary FROM employees e INNER JOIN payroll p ON p.employee_id = e.id;
SELECT e.id, p.salary FROM employees e WHERE p.employee_id = e.id;
SELECT e.id, p.salary FROM employees e LEFT JOIN payroll p ON p.employee_id = e.id;

เฉลยอธิบาย

LEFT JOIN เก็บทุกแถวจาก employees และให้คอลัมน์ฝั่ง payroll เป็น NULL เมื่อไม่มีคู่ INNER JOIN จะตัดพนักงานที่ไม่มี payroll และ CROSS JOIN สร้างทุกคู่

ข้อสอบอื่นในวิชาการใช้ภาษา SQL

ดูข้อสอบวิชานี้ทั้งหมด →