ตาราง employees มีคอลัมน์ emp_id, name, salary, department_id และตาราง departments มีคอลัมน์ dept_id, dept_name ต้องการแสดงชื่อพนักงาน เงินเดือน และชื่อแผนก คำสั่ง SQL ใดถูกต้อง
กSELECT e.name, e.salary, d.dept_name FROM employees e JOIN departments d ON e.emp_id = d.dept_id;
ขSELECT e.name, e.salary, d.dept_name FROM employees e JOIN departments d ON e.department_id = d.dept_id;
คSELECT name, salary, dept_name FROM employees, departments WHERE emp_id = dept_id;
งSELECT e.name, e.salary, d.dept_name FROM employees e INNER JOIN departments d ON e.department_id = e.dept_id;
เฉลยอธิบาย
คำตอบที่ถูกต้องคือ B เพราะใช้ JOIN เชื่อมตาราง employees และ departments โดยกำหนดเงื่อนไข ON e.department_id = d.dept_id ซึ่งเป็นการจับคู่คอลัมน์ที่ถูกต้อง ตัวเลือก B ผิดเพราะเชื่อมด้วย emp_id กับ dept_id ซึ่งไม่ใช่คีย์ที่สัมพันธ์กัน ตัวเลือก C ผิดเพราะเงื่อนไข WHERE ใช้ emp_id = dept_id ซึ่งไม่ถูกต้อง ตัวเลือก D ผิดเพราะเงื่อนไข ON ใช้ e.dept_id ซึ่งไม่มีในตาราง employees