pg分表分区后,分表查询主表和分区表都带上了 返回

SqlSugar 沟通中
1 435

sqlsugar使用版本:5.1.4.211

PG数据库按月分表(sqlsugar)自带的,按天分区(pg数据库)

356eda49-9203-4cf7-8d45-679a016852e3.png

执行查询

 var query = _db.Queryable<AttendanceRecord>()

     .SplitTable(startTime.Value, endTime.Value);


查询时间条件2026-01-01 00:00:00   2026-01-03 23:59:59


打印的sql

SELECT * FROM  ( ( SELECT "id","person_id","person_name","recognition_status","recognition_time","created_at" FROM "attendance_record_20260101_p20260131"  WHERE  "recognition_time">='01/01/2026 00:00:00' AND "recognition_time"<= '01/03/2026 23:59:59'   )   UNION ALL 

 ( SELECT "id","person_id","person_name","recognition_status","recognition_time","created_at" FROM "attendance_record_20260101_p20260130"  WHERE  "recognition_time">='01/01/2026 00:00:00' AND "recognition_time"<= '01/03/2026 23:59:59'   )   UNION ALL 

 ( SELECT "id","person_id","person_name","recognition_status","recognition_time","created_at" FROM "attendance_record_20260101_p20260129"  WHERE  "recognition_time">='01/01/2026 00:00:00' AND "recognition_time"<= '01/03/2026 23:59:59'   )   UNION ALL 

 ( SELECT "id","person_id","person_name","recognition_status","recognition_time","created_at" FROM "attendance_record_20260101_p20260128"  WHERE  "recognition_time">='01/01/2026 00:00:00' AND "recognition_time"<= '01/03/2026 23:59:59'   )   UNION ALL 

 ( SELECT "id","person_id","person_name","recognition_status","recognition_time","created_at" FROM "attendance_record_20260101_p20260127"  WHERE  "recognition_time">='01/01/2026 00:00:00' AND "recognition_time"<= '01/03/2026 23:59:59'   )   UNION ALL 

 ( SELECT "id","person_id","person_name","recognition_status","recognition_time","created_at" FROM "attendance_record_20260101_p20260126"  WHERE  "recognition_time">='01/01/2026 00:00:00' AND "recognition_time"<= '01/03/2026 23:59:59'   )   UNION ALL 

 ( SELECT "id","person_id","person_name","recognition_status","recognition_time","created_at" FROM "attendance_record_20260101_p20260125"  WHERE  "recognition_time">='01/01/2026 00:00:00' AND "recognition_time"<= '01/03/2026 23:59:59'   )   UNION ALL 

 ( SELECT "id","person_id","person_name","recognition_status","recognition_time","created_at" FROM "attendance_record_20260101_p20260124"  WHERE  "recognition_time">='01/01/2026 00:00:00' AND "recognition_time"<= '01/03/2026 23:59:59'   )   UNION ALL 

 ( SELECT "id","person_id","person_name","recognition_status","recognition_time","created_at" FROM "attendance_record_20260101_p20260123"  WHERE  "recognition_time">='01/01/2026 00:00:00' AND "recognition_time"<= '01/03/2026 23:59:59'   )   UNION ALL 

 ( SELECT "id","person_id","person_name","recognition_status","recognition_time","created_at" FROM "attendance_record_20260101_p20260122"  WHERE  "recognition_time">='01/01/2026 00:00:00' AND "recognition_time"<= '01/03/2026 23:59:59'   )   UNION ALL 

 ( SELECT "id","person_id","person_name","recognition_status","recognition_time","created_at" FROM "attendance_record_20260101_p20260121"  WHERE  "recognition_time">='01/01/2026 00:00:00' AND "recognition_time"<= '01/03/2026 23:59:59'   )   UNION ALL 

 ( SELECT "id","person_id","person_name","recognition_status","recognition_time","created_at" FROM "attendance_record_20260101_p20260120"  WHERE  "recognition_time">='01/01/2026 00:00:00' AND "recognition_time"<= '01/03/2026 23:59:59'   )   UNION ALL 

 ( SELECT "id","person_id","person_name","recognition_status","recognition_time","created_at" FROM "attendance_record_20260101_p20260119"  WHERE  "recognition_time">='01/01/2026 00:00:00' AND "recognition_time"<= '01/03/2026 23:59:59'   )   UNION ALL 

 ( SELECT "id","person_id","person_name","recognition_status","recognition_time","created_at" FROM "attendance_record_20260101_p20260118"  WHERE  "recognition_time">='01/01/2026 00:00:00' AND "recognition_time"<= '01/03/2026 23:59:59'   )   UNION ALL 

 ( SELECT "id","person_id","person_name","recognition_status","recognition_time","created_at" FROM "attendance_record_20260101_p20260117"  WHERE  "recognition_time">='01/01/2026 00:00:00' AND "recognition_time"<= '01/03/2026 23:59:59'   )   UNION ALL 

 ( SELECT "id","person_id","person_name","recognition_status","recognition_time","created_at" FROM "attendance_record_20260101_p20260116"  WHERE  "recognition_time">='01/01/2026 00:00:00' AND "recognition_time"<= '01/03/2026 23:59:59'   )   UNION ALL 

 ( SELECT "id","person_id","person_name","recognition_status","recognition_time","created_at" FROM "attendance_record_20260101_p20260115"  WHERE  "recognition_time">='01/01/2026 00:00:00' AND "recognition_time"<= '01/03/2026 23:59:59'   )   UNION ALL 

 ( SELECT "id","person_id","person_name","recognition_status","recognition_time","created_at" FROM "attendance_record_20260101_p20260114"  WHERE  "recognition_time">='01/01/2026 00:00:00' AND "recognition_time"<= '01/03/2026 23:59:59'   )   UNION ALL 

 ( SELECT "id","person_id","person_name","recognition_status","recognition_time","created_at" FROM "attendance_record_20260101_p20260113"  WHERE  "recognition_time">='01/01/2026 00:00:00' AND "recognition_time"<= '01/03/2026 23:59:59'   )   UNION ALL 

 ( SELECT "id","person_id","person_name","recognition_status","recognition_time","created_at" FROM "attendance_record_20260101_p20260112"  WHERE  "recognition_time">='01/01/2026 00:00:00' AND "recognition_time"<= '01/03/2026 23:59:59'   )   UNION ALL 

 ( SELECT "id","person_id","person_name","recognition_status","recognition_time","created_at" FROM "attendance_record_20260101_p20260111"  WHERE  "recognition_time">='01/01/2026 00:00:00' AND "recognition_time"<= '01/03/2026 23:59:59'   )   UNION ALL 

 ( SELECT "id","person_id","person_name","recognition_status","recognition_time","created_at" FROM "attendance_record_20260101_p20260110"  WHERE  "recognition_time">='01/01/2026 00:00:00' AND "recognition_time"<= '01/03/2026 23:59:59'   )   UNION ALL 

 ( SELECT "id","person_id","person_name","recognition_status","recognition_time","created_at" FROM "attendance_record_20260101_p20260109"  WHERE  "recognition_time">='01/01/2026 00:00:00' AND "recognition_time"<= '01/03/2026 23:59:59'   )   UNION ALL 

 ( SELECT "id","person_id","person_name","recognition_status","recognition_time","created_at" FROM "attendance_record_20260101_p20260108"  WHERE  "recognition_time">='01/01/2026 00:00:00' AND "recognition_time"<= '01/03/2026 23:59:59'   )   UNION ALL 

 ( SELECT "id","person_id","person_name","recognition_status","recognition_time","created_at" FROM "attendance_record_20260101_p20260107"  WHERE  "recognition_time">='01/01/2026 00:00:00' AND "recognition_time"<= '01/03/2026 23:59:59'   )   UNION ALL 

 ( SELECT "id","person_id","person_name","recognition_status","recognition_time","created_at" FROM "attendance_record_20260101_p20260106"  WHERE  "recognition_time">='01/01/2026 00:00:00' AND "recognition_time"<= '01/03/2026 23:59:59'   )   UNION ALL 

 ( SELECT "id","person_id","person_name","recognition_status","recognition_time","created_at" FROM "attendance_record_20260101_p20260105"  WHERE  "recognition_time">='01/01/2026 00:00:00' AND "recognition_time"<= '01/03/2026 23:59:59'   )   UNION ALL 

 ( SELECT "id","person_id","person_name","recognition_status","recognition_time","created_at" FROM "attendance_record_20260101_p20260104"  WHERE  "recognition_time">='01/01/2026 00:00:00' AND "recognition_time"<= '01/03/2026 23:59:59'   )   UNION ALL 

 ( SELECT "id","person_id","person_name","recognition_status","recognition_time","created_at" FROM "attendance_record_20260101_p20260103"  WHERE  "recognition_time">='01/01/2026 00:00:00' AND "recognition_time"<= '01/03/2026 23:59:59'   )   UNION ALL 

 ( SELECT "id","person_id","person_name","recognition_status","recognition_time","created_at" FROM "attendance_record_20260101_p20260102"  WHERE  "recognition_time">='01/01/2026 00:00:00' AND "recognition_time"<= '01/03/2026 23:59:59'   )   UNION ALL 

 ( SELECT "id","person_id","person_name","recognition_status","recognition_time","created_at" FROM "attendance_record_20260101_p20260101"  WHERE  "recognition_time">='01/01/2026 00:00:00' AND "recognition_time"<= '01/03/2026 23:59:59'   )   UNION ALL 

 ( SELECT "id","person_id","person_name","recognition_status","recognition_time","created_at" FROM "attendance_record_20260101"  WHERE  "recognition_time">='01/01/2026 00:00:00' AND "recognition_time"<= '01/03/2026 23:59:59'   )  ) unionTable     ORDER BY "recognition_time" DESC LIMIT 10 offset 0



1,我理想的是分区使用的只查对应的表attendance_record_20260101,多个分表多个主表union all,他这个把分区表也带上?

2,这种查询主表attendance_record_20260101和所有分区例如attendance_record_20260101_p20260101、attendance_record_20260101_p20260102都带上了,导致数据亮查询增加了一倍,导致分表查询的业务没办法用?

这个是我使用的问题,还是最新版本sqlsugar的bug


热忱回答1

  • fate sta fate sta VIP0
    2026/1/23

    分表和分区不是一个东西。你用分区那就不用ORM分表。

    0 回复