select t2.customer_id, customer_name, product_name as latest_order from ( select orders.* from orders left join ( select customer_id, max(order_date) as order_date_index from orders group by customer_id ) as t1 on t1.customer_id = orders.customer_id where t1.order_date_index = orders.order_date ) as t2 left join customers using (customer_id) left join products using (product_id) order by customer_id;