diff options
| author | wangwei <[email protected]> | 2020-11-12 09:20:18 +0800 |
|---|---|---|
| committer | wangwei <[email protected]> | 2020-11-12 09:20:18 +0800 |
| commit | 73006a0da5fe615192b9389fa699cd73290b7184 (patch) | |
| tree | bb492ec8e34136c1dd1dea1f81828d4f972f741f | |
| parent | 2f93243dcd35503447e6288dc7b870f50d0768a9 (diff) | |
fix(subQuery):子表查询优化,对子查询外层where条件补充,解决log_id重复导致筛选结果异常v3.3.201112
| -rw-r--r-- | src/main/java/com/mesalab/qgw/dialect/ClickHouseDialect.java | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/main/java/com/mesalab/qgw/dialect/ClickHouseDialect.java b/src/main/java/com/mesalab/qgw/dialect/ClickHouseDialect.java index fb4aec85..419b1ac5 100644 --- a/src/main/java/com/mesalab/qgw/dialect/ClickHouseDialect.java +++ b/src/main/java/com/mesalab/qgw/dialect/ClickHouseDialect.java @@ -393,7 +393,6 @@ public class ClickHouseDialect extends AbstractDataSourceDialect { //判断三: where 条件列是否都在索引表中 setValidityByWhereExpressionsInSchema(param.getDbQuerySource().getWhereExpression(), masterTableSchema, indexTableSchema); if (getSubIndexValidFlag() && isExist(indexTableSchema.getFullName())) { - System.out.println(indexTableSchema.getFullName()); indexTable = indexTableSchema.getName(); break; } @@ -414,6 +413,9 @@ public class ClickHouseDialect extends AbstractDataSourceDialect { StringBuffer subQuery = getSubquerySql(primaryKey, indexTable); StringBuffer sb = new StringBuffer(); sb.append("select ").append(param.getDbQuerySource().getSelectItems()).append(" from ").append(param.getTableName()).append(" where ").append(primaryKey).append(" in ( ").append(subQuery).append(")"); + if (StringUtil.isNotBlank(param.getDbQuerySource().getExpr())) { + sb.append(" and (").append(param.getDbQuerySource().getExpr()).append(")"); + } if (StringUtil.isNotBlank(param.getDbQuerySource().getOrderBy())) { sb.append(" order by ").append(param.getDbQuerySource().getOrderBy()); } |
