使用 'DISTINCT' 关键字可以去除重复的行,但在某些情况下可能不起作用,这是因为每行数据中的某些列的值不完全相同,导致这些行被认为是不同的。

为了解决这个问题,可以使用 'GROUP BY' 子句根据特定列对结果进行分组。例如,如果只想获取每个订单的第一行数据,可以按订单 ID 进行分组,并选择每个组的第一行数据。以下是一个示例查询:

SELECT fo.oid,f.flight_num,f.flight_date,f.start_city,f.end_city,p.pname,fo.order_amount,fo.order_status,fo.order_time 
FROM `flightorder` fo,passenger p,flight f 
WHERE p.username=fo.username AND f.fid=fo.fid 
GROUP BY fo.oid;

需要注意的是,使用 'GROUP BY' 可能导致其他列的数据丢失,因为只选择了每个组的第一行数据。如果需要保留其他列的值,可以使用聚合函数(如 'SUM'、'MAX'、'MIN' 等)来计算这些值,并将它们包含在 'SELECT' 子句中。

SQL 查询重复数据问题及解决方案 - DISTINCT 和 GROUP BY 的应用

原文地址: https://www.cveoy.top/t/topic/qhxZ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录