多表查询需求:获取OctSales和NovSales中所有账户的销售数据
合并两张销售表的所有账户数据解决方案
嘿,这个需求很常见,用SQL的集合操作就能轻松搞定,分两种场景给你拆解:
场景1:保留所有记录(含重复条目)
如果你的需求是把十月和十一月的所有销售数据都列出来——哪怕同一个账户在两张表都有记录(比如同一个客户十月消费了一次,十一月又消费了一次,两条记录都要保留),那用UNION ALL是最优选择。它会直接合并两个结果集,不会做去重检查,效率更高:
SELECT Account, Consumption, bill FROM OctSales UNION ALL SELECT Account, Consumption, bill FROM NovSales
场景2:去除完全重复的记录
如果存在完全相同的记录(比如同一条消费记录同时出现在OctSales和NovSales里),你想只保留一条,那换成UNION就行。它会自动对合并后的结果集做去重处理:
SELECT Account, Consumption, bill FROM OctSales UNION SELECT Account, Consumption, bill FROM NovSales
额外优化:标记数据所属月份
要是你想直观区分每条数据属于十月还是十一月,可以额外加一个字段标记,结果会更清晰:
SELECT 'October' AS SalesMonth, Account, Consumption, bill FROM OctSales UNION ALL SELECT 'November' AS SalesMonth, Account, Consumption, bill FROM NovSales
这样你就能一眼看出每条销售数据的归属月份啦~
内容的提问来源于stack exchange,提问作者Zevozki Frankooto
相关产品推荐
相关产品推荐

