MySQL:用户表,Monogdb:订单表,统计用户订单,及总订单金额

using DiffDBQuery.Util.model;namespace DiffDBQuery {internal class Program{static void Main(string[] args){// 1. 生成虚拟用户数据(MySQL查询结果)var users = new List<User>{new User { Id = 1, Name = "张三", Age = 28 },new User { Id = 2, Name = "李四", Age = 35 },new User { Id = 3, Name = "王五", Age = 22 },new User { Id = 4, Name = "赵六", Age = 40 }, // 无订单用户new User { Id = 5, Name = "钱七", Age = 31 } // 有多个订单的用户 };// 2. 生成虚拟订单数据(MongoDB查询结果)var orders = new List<Order>{new Order { Id = "o1", UserId = 1, Total = 199.99 },new Order { Id = "o2", UserId = 1, Total = 299.50 },new Order { Id = "o3", UserId = 2, Total = 599.00 },new Order { Id = "o4", UserId = 2, Total = 89.90 },new Order { Id = "o5", UserId = 3, Total = 150.00 },new Order { Id = "o6", UserId = 5, Total = 350.50 },new Order { Id = "o7", UserId = 5, Total = 120.30 },new Order { Id = "o8", UserId = 5, Total = 899.99 }};// 3. 执行联合查询(模拟跨库关联)var result = from user in usersjoin order in orders on user.Id equals order.UserId into userOrdersselect new{UserId = user.Id,UserName = user.Name, Age = user.Age,OrderCount = userOrders.Count(),TotalOrders = userOrders.Sum(o => o.Total), };// 4. 输出查询结果Console.WriteLine("联合查询结果:");Console.WriteLine("------------------------------------------------");Console.WriteLine("用户ID | 用户名 | 年龄 | 订单数量 | 总订单金额");Console.WriteLine("------------------------------------------------");foreach (var item in result){Console.WriteLine($"{item.UserId,-6} | {item.UserName,-4} | {item.Age,-3} | {item.OrderCount,-8} | {item.TotalOrders:C}");}Console.ReadLine();}} }
