嵌套子查询后结果异常

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:3.0.0GA
  • 【问题描述】:图片应该可以说明情况,正常查询结果是664条,把其中一个条件换成子查询就变成0了

两者计划麻烦附带下,多谢

刚尝试本地复现,没复现成功,相关表结构能提供下嘛?

CREATE TABLE `pay_transaction_orders` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键,自增id ',
  `seq_no` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '',
  `pay_no` varchar(64) NOT NULL COMMENT '',
  `merchant_id` int(11) NOT NULL COMMENT '',
  `buyer_id` bigint(20) DEFAULT '0' COMMENT '',
  `seller_id` bigint(20) DEFAULT '0' COMMENT '',
  `trade_order` varchar(64) NOT NULL COMMENT '',
  `trans_category` int(11) NOT NULL COMMENT '',
  `trade_type` varchar(64) DEFAULT 'FP' COMMENT '',
  `amt` bigint(20) NOT NULL COMMENT '',
  `r` double NOT NULL DEFAULT '1' COMMENT '',
  `tcoin_amt` bigint(20) DEFAULT '0' COMMENT '',
  `currency` varchar(64) DEFAULT 'YTN' COMMENT '',
  `notify_url` varchar(128) NOT NULL DEFAULT '' COMMENT '',
  `product` varchar(128) DEFAULT NULL COMMENT '',
  `description` varchar(255) DEFAULT NULL COMMENT '',
  `customer_id` int(11) NOT NULL COMMENT '',
  `account_id` int(11) NOT NULL COMMENT '',
  `collect_channel` int(11) DEFAULT '0' COMMENT '',
  `channel_supplier` char(64) DEFAULT '' COMMENT '',
  `collect_detail` varchar(2048) DEFAULT '' COMMENT '',
  `collect_trans_no` varchar(64) DEFAULT NULL COMMENT '',
  `payment_trans_no` varchar(64) DEFAULT NULL COMMENT '',
  `refund_trans_no` varchar(64) DEFAULT NULL COMMENT '',
  `collected_amt` int(11) DEFAULT '0' COMMENT '',
  `paid_amt` int(11) DEFAULT '0' COMMENT '',
  `refunded_amt` int(11) DEFAULT '0' COMMENT '',
  `related_pay_no` varchar(64) DEFAULT '' COMMENT '',
  `collected_time` int(11) DEFAULT '0' COMMENT '',
  `paid_time` int(11) DEFAULT '0' COMMENT '',
  `refunded_time` int(11) DEFAULT '0' COMMENT '',
  `status` int(10) unsigned DEFAULT '1' COMMENT '',
  `created_time` int(10) unsigned DEFAULT '0' COMMENT '创建时间戳',
  `updated_time` int(10) unsigned DEFAULT '0' COMMENT '上次更新时间戳',
  PRIMARY KEY (`id`),
  UNIQUE KEY `pay_no` (`pay_no`),
  UNIQUE KEY `trade_order_status_seq` (`trade_order`,`status`,`seq_no`),
  KEY `key_1` (`trade_order`,`status`),
  KEY `customer_id_status` (`customer_id`,`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=162737994 COMMENT=''

补充执行计划

Hi,该问题已在 v3.0.0 GA复现, 在高版本内 3.0.7 是可正常执行,感谢反馈~

目前暂时建议改等值查询或者IN 指定值或者升级下版本绕过

请问v3.0.4 可以正常执行吗?

你可以尝试在 v3.0.4 版本上构造 SQL 执行下,我这暂无 v3.0.4 环境,刚在 v3.0.5 环境执行是正常得

升级至v3.0.7 问题解决

:+1: