Question

    In SQL, which of the following is the correct syntax for

    joining three tables—customers, orders, and products—where orders and products share the column product_id, and customers is linked to orders through customer_id?
    A SELECT * FROM customers INNER JOIN orders ON customers.customer_id = orders.customer_id INNER JOIN products ON orders.product_id = products.product_id; Correct Answer Incorrect Answer
    B SELECT * FROM customers, orders, products WHERE customers.customer_id = orders.customer_id AND orders.product_id = products.product_id; Correct Answer Incorrect Answer
    C SELECT * FROM customers JOIN orders JOIN products ON customers.customer_id = orders.customer_id AND orders.product_id = products.product_id; Correct Answer Incorrect Answer
    D SELECT * FROM customers LEFT JOIN orders ON customers.customer_id = orders.customer_id JOIN products ON orders.product_id = products.product_id; Correct Answer Incorrect Answer
    E SELECT * FROM customers RIGHT JOIN orders ON customers.customer_id = orders.customer_id LEFT JOIN products ON orders.product_id = products.product_id; Correct Answer Incorrect Answer

    Solution

    The correct query syntax for joining three tables in SQL is Option A, where each join explicitly specifies the tables being linked and the conditions under which they are linked. Here, the INNER JOIN ensures that only rows that match the condition (i.e., customer_id and product_id matches) in all three tables will appear in the result. This is a standard way to retrieve data from related tables, ensuring that all related data is represented. Why Other Options Are Incorrect: • B: While this query uses the correct WHERE clause to specify join conditions, it lacks the clarity of using explicit JOIN syntax, which is recommended for readability and standard SQL practices. • C: This query lacks proper syntax for joining multiple tables. JOIN needs to be explicitly written with conditions for each pair of tables, not just in one statement. • D: The LEFT JOIN is used for customers and orders, which is a valid syntax, but the use of JOIN after a LEFT JOIN without an explicit condition is incorrect and leads to ambiguity in the query. • E: A RIGHT JOIN is used on orders, which is incorrect here since you are primarily interested in customers and their orders. This would potentially omit customers who have no orders.

    Practice Next