ต้องการแสดงสินค้าทุกชิ้น แม้บางชิ้นยังไม่มีซัพพลายเออร์ คำสั่งใดถูกต้อง

SELECT name, price FROM products UNION suppliers;
SELECT p.name, p.price, s.name FROM products AS p INNER JOIN suppliers AS s ON p.supplier_id = s.id;
SELECT p.name, p.price, s.name FROM products AS p LEFT JOIN suppliers AS s ON p.supplier_id = s.id;
SELECT p.name FROM products AS p CROSS JOIN suppliers AS s;

เฉลยอธิบาย

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

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

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