ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
~~~ // 数据库分表需求:[按照每月分表] success // 条件:users(mysql)、roles(mysql)、order(mysql)、login_log(mongoDb) // 实现:用户列表、角色列表、订单列表、日志列表 // 用户列表:查询所有用户的所有角色(某个用户)ID、账号、设备号、注册IP、登录时间、登录国家【关联表:users、roles、order、login_log】 // Sql语句: SELECT user_分表1.id、user_分表1.account from user_时间 leftJoin DB::raw('以下roles所有分表') leftJoin DB::raw('以下orders所有分表') ->with('mongoDb【login_log表】') // 角色列表:ID、游戏名称、用户ID、区服、角色 // Sql语句:SELECT role_分表1.id、role_分表1.roleName from user_时间 leftJoin DB::raw('以下users所有分表')) // 订单列表:ID、订单号、用户ID、区服、注册IP // Sql语句:SELECT order_分表1.id、order_分表1.order_num from order_时间 leftJoin DB::raw('以下users所有分表') leftJoin DB::raw('以下roles所有分表')) ->with('mongoDb【login_log表】') // 日志列表:游戏名称、登录时间、IP、国家、用户ID // Sql语句: SELECT game_id, login_time, ip, user_id from login_log with ('games') // //$sql = 'SELECT uuid, username, created_at from user_2023_03 JOIN (((SELECT order_2023_01.id,order_2023_01.user_uuid FROM order_2023_01) UNION (SELECT order_2023_02.id, order_2023_02.user_uuid FROM order_2023_02) UNION (SELECT order_2023_03.id,order_2023_03.user_uuid FROM order_2023_03) UNION (SELECT order_2023_04.id,order_2023_04.user_uuid FROM order_2023_04)) AS union_orders) ON user_2023_03.uuid = union_orders.user_uuid'; $sql = 'SELECT uuid, username, created_at from user_2023_03'; $response = DB::table(DB::raw("($sql) as user_all"))->leftJoin( DB::raw('( (SELECT order_2023_01.user_uuid,order_2023_01.order_uuid FROM order_2023_01) UNION (SELECT order_2023_02.user_uuid,order_2023_02.order_uuid FROM order_2023_02) UNION (SELECT order_2023_03.user_uuid,order_2023_03.order_uuid FROM order_2023_03) UNION (SELECT order_2023_04.user_uuid,order_2023_04.order_uuid FROM order_2023_04) ) as order_all'), function($join){ $join->on('user_all.uuid', '=', 'order_all.user_uuid'); })->get()->toArray(); ~~~