MST

星途 面试题库

面试题:MySQL复杂查询中避免多表关联数据重复策略

有两个表`orders`(包含`order_id`、`customer_id`等列)和`order_items`(包含`item_id`、`order_id`、`product_name`等列)。要求通过多表关联检索出每个订单及其对应的商品名称,并且要避免由于多对多关系导致的重复订单数据(假设一个订单可能对应多个商品),同时计算出每个订单下商品的总数,展示订单ID、商品总数及商品名称列表,用SQL实现。
46.5万 热度难度
数据库MySQL

知识考点

AI 面试

面试题答案

一键面试
SELECT 
    o.order_id,
    COUNT(oi.item_id) AS item_count,
    GROUP_CONCAT(oi.product_name) AS product_name_list
FROM 
    orders o
JOIN 
    order_items oi ON o.order_id = oi.order_id
GROUP BY 
    o.order_id;