SELECT customer_id,customer_name,product_name AS latest_order
FROM(    
    SELECT a.customer_id,b.customer_name,c.product_name,a.order_date,
    ROW_NUMBER() OVER (PARTITION BY a.customer_id ORDER BY a.order_date DESC) AS rk
    FROM orders AS a
    JOIN customers AS b ON a.customer_id = b.customer_id
    JOIN products AS c ON a.product_id = c.product_id
) AS ranked_tb
WHERE rk = 1
ORDER BY customer_id ASC

此题ez,先将三表连接保留customer_id,customer_name,product_name,order_date,再用ROW_NUMBER (DESC)分组排序找出最近日期,第二层SELECT选出rk为1的就好了