qifengzhang007 opened a new issue #8051:
URL: https://github.com/apache/shardingsphere/issues/8051
### 问题描述:两个表连接查询结果不正确!
### 当前软件以及版本 sharding-proxy 4.1.1
### 主要配置参数
```code
shardingRule:
tables:
# 表名: t_order
tb_order:
actualDataNodes: ds_${0..1}.tb_order_${0..1}
# table 表的行内规则
tableStrategy:
inline:
#分表字段,开发者生成
shardingColumn: order_id
#算法, order_id 是偶数,就存入 t_order_0 表
algorithmExpression: tb_order_${order_id % 2}
#主键生成规则:雪花算法+该表(t_order)的主键:id ,id 字段会自动生成
keyGenerator:
type: SNOWFLAKE
column: id
tb_order_item:
actualDataNodes: ds_${0..1}.tb_order_item_${0..3}
tableStrategy:
inline:
# t_order_item 表的数据就是t_order表的明细数据,两个表的关联键是 order_id
shardingColumn: order_id
algorithmExpression: tb_order_item_${order_id % 4}
#主键生成规则:雪花算法+该表(t_order_item)的主键:id ,字段会自动生成
keyGenerator:
type: SNOWFLAKE
column: id
#设置哪些表需要分库分表
bindingTables:
- tb_order,tb_order_item
#数据源配置策略
defaultDatabaseStrategy:
inline:
#一般来说,订单表中数据的产生和操作员(用户id)user_id 绑定,如果用户id时偶数,就寻找 ds_0 数据源对应的数据库
shardingColumn: id
algorithmExpression: ds_${id % 2}
defaultTableStrategy:
none:
```
### 问题复现步骤
```code
SELECT * FROM tb_order WHERE order_id=20201106001 ;
-- 查询结果会有1条数据
"id" "order_id" "order_name" "status" "remark"
"created_at" "updated_at"
"531493101638778884" "20201106001" "双11订单测试001" "1" "订单主表001"
"2020-11-06 15:23:50" "2020-11-06 15:23:50"
SELECT * FROM tb_order_item WHERE order_id=20201106001;
-- 查询结果会有2条数据
"id" "order_id" "item_name" "price" "num" "total_price"
"status" "remark" "created_at" "updated_at"
"531498964927643648" "20201106001" "小米手10" "2.00" "4999" "9998.00"
"1" "小米手机白色版" "2020-11-06 15:47:08" "2020-11-06 15:47:08"
"531499009353711617" "20201106001" "小米手10 至尊版" "2.00" "4999"
"9998.00" "1" "小米手机至尊版" "2020-11-06 15:47:18" "2020-11-06
15:47:18"
sql表关联查询之后,只有一条数据,而且还是字段被合并在一行了?什么奇葩问题?
SELECT * FROM tb_order a LEFT JOIN tb_order_item b ON
a.order_id=b.order_id WHERE a.order_id=20201106001
#查询结果错误,被合并成了一行,而且只有一条数据!
"id" "order_id" "order_name" "status" "remark"
"created_at" "updated_at" "id" "order_id" "item_name" "price"
"num" "total_price" "status" "remark" "created_at"
"updated_at"
"531493101638778884" "20201106001" "双11订单测试001" "1" "订单主表001"
"2020-11-06 15:23:50" "2020-11-06 15:23:50" "531498964927643648"
"20201106001" "小米手10" "2.00" "4999" "9998.00" "1" "小米手机白色版"
"2020-11-06 15:47:08" "2020-11-06 15:47:08"
```
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]