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;