你好:
1. 是只查单列报错,查所有列会不会报错?
答: 只有这一个列报错
2. 表结构和 explain
CREATE TABLE `dc_f_d_sale` (
`distributor_code` varchar(200) COLLATE utf8_bin DEFAULT NULL ,
`distributor_name` varchar(200) COLLATE utf8_bin DEFAULT NULL ,
`seller_name` varchar(200) COLLATE utf8_bin DEFAULT NULL ,
`normal_seller_code` varchar(32) COLLATE utf8_general_ci NOT NULL DEFAULT '',
`organ_name` varchar(200) COLLATE utf8_bin DEFAULT NULL ,
`normal_organ_code` varchar(32) COLLATE utf8_general_ci DEFAULT '',
`relation_organ_code` varchar(200) COLLATE utf8_bin DEFAULT NULL ,
`relation_organ_name` varchar(200) COLLATE utf8_bin DEFAULT NULL ,
`product_code` varchar(200) COLLATE utf8_bin DEFAULT NULL ,
`product_name` varchar(200) COLLATE utf8_bin DEFAULT NULL ,
`normal_product_code` varchar(32) COLLATE utf8_bin NOT NULL ,
`normal_quantity` decimal(20,6) DEFAULT NULL ,
`quantity` decimal(20,6) DEFAULT NULL ,
`seller_mapping_id` varchar(32) COLLATE utf8_bin DEFAULT NULL ,
`organ_mapping_id` varchar(32) COLLATE utf8_bin DEFAULT NULL ,
`product_mapping_id` varchar(32) COLLATE utf8_bin DEFAULT NULL ,
`br_status` varchar(32) COLLATE utf8_bin DEFAULT NULL ,
`organ_enable` varchar(32) COLLATE utf8_bin DEFAULT NULL ,
`product_enable` varchar(32) COLLATE utf8_bin DEFAULT NULL ,
`data_flag` varchar(32) COLLATE utf8_bin DEFAULT NULL ,
`source_file_id` varchar(500) COLLATE utf8_bin DEFAULT NULL ,
`seller_date` date NOT NULL ,
`source` varchar(32) COLLATE utf8_bin DEFAULT NULL ,
`amount` decimal(64,6) DEFAULT NULL ,
`is_disable` varchar(32) COLLATE utf8_bin DEFAULT '0' ,
`create_user` varchar(32) COLLATE utf8_bin DEFAULT NULL ,
`create_time` datetime DEFAULT NULL ,
`update_user` varchar(32) COLLATE utf8_bin DEFAULT NULL ,
`update_time` datetime DEFAULT NULL ,
`version_no` varchar(32) COLLATE utf8_bin DEFAULT NULL ,
`is_del` varchar(32) COLLATE utf8_bin DEFAULT '0' ,
`id` varchar(32) COLLATE utf8_bin NOT NULL,
`price` decimal(64,6) DEFAULT NULL ,
`br_check_description` varchar(1000) COLLATE utf8_bin DEFAULT NULL ,
`normal_price` decimal(20,6) DEFAULT NULL ,
`normal_amount` decimal(20,6) DEFAULT NULL ,
`agent_status` varchar(10) COLLATE utf8_bin DEFAULT NULL ,
`belong_month` date DEFAULT NULL ,
`organ_address` varchar(500) COLLATE utf8_bin DEFAULT NULL ,
`specification` varchar(200) COLLATE utf8_bin DEFAULT NULL ,
`vender_info` varchar(200) COLLATE utf8_bin DEFAULT NULL ,
`odd_num` varchar(200) COLLATE utf8_bin DEFAULT NULL ,
`lot_no` varchar(200) COLLATE utf8_bin DEFAULT NULL ,
`validity_date` date DEFAULT NULL ,
`create_ntid` varchar(32) COLLATE utf8_general_ci DEFAULT '' ,
`update_ntid` varchar(32) COLLATE utf8_general_ci DEFAULT '' ,
`seller_year_month` varchar(20) COLLATE utf8_general_ci DEFAULT '' ,
PRIMARY KEY (`seller_date`,`id`),
KEY `index1` (`seller_date`,`is_del`,`normal_product_code`,`normal_seller_code`,`normal_organ_code`,`br_status`,`distributor_code`),
KEY `index2` (`seller_date`,`is_del`,`normal_product_code`,`normal_seller_code`,`normal_organ_code`,`br_status`,`distributor_code`,`source_file_id`),
KEY `index_source_file_id` (`seller_date`,`source_file_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci COMMENT='数据'
PARTITION BY RANGE ( TO_DAYS(`seller_date`) ) (
PARTITION `p200001` VALUES LESS THAN (730485),
PARTITION `p201701` VALUES LESS THAN (736726),
PARTITION `p201702` VALUES LESS THAN (736754),
PARTITION `p201703` VALUES LESS THAN (736785),
PARTITION `p201704` VALUES LESS THAN (736815),
PARTITION `p201705` VALUES LESS THAN (736846),
PARTITION `p201706` VALUES LESS THAN (736876),
PARTITION `p201707` VALUES LESS THAN (736907),
PARTITION `p201708` VALUES LESS THAN (736938),
PARTITION `p201709` VALUES LESS THAN (736968),
PARTITION `p201710` VALUES LESS THAN (736999),
PARTITION `p201711` VALUES LESS THAN (737029),
PARTITION `p201712` VALUES LESS THAN (737060),
PARTITION `p201801` VALUES LESS THAN (737091),
PARTITION `p201802` VALUES LESS THAN (737119),
PARTITION `p201803` VALUES LESS THAN (737150),
PARTITION `p201804` VALUES LESS THAN (737180),
PARTITION `p201805` VALUES LESS THAN (737211),
PARTITION `p201806` VALUES LESS THAN (737241),
PARTITION `p201807` VALUES LESS THAN (737272),
PARTITION `p201808` VALUES LESS THAN (737303),
PARTITION `p201809` VALUES LESS THAN (737333),
PARTITION `p201810` VALUES LESS THAN (737364),
PARTITION `p201811` VALUES LESS THAN (737394),
PARTITION `p201812` VALUES LESS THAN (737425),
PARTITION `p201901` VALUES LESS THAN (737456),
PARTITION `p201902` VALUES LESS THAN (737484),
PARTITION `p201903` VALUES LESS THAN (737515),
PARTITION `p201904` VALUES LESS THAN (737545),
PARTITION `p201905` VALUES LESS THAN (737576),
PARTITION `p201906` VALUES LESS THAN (737606),
PARTITION `p201907` VALUES LESS THAN (737637),
PARTITION `p201908` VALUES LESS THAN (737668),
PARTITION `p201909` VALUES LESS THAN (737698),
PARTITION `p201910` VALUES LESS THAN (737729),
PARTITION `p201911` VALUES LESS THAN (737759),
PARTITION `p201912` VALUES LESS THAN (737790),
PARTITION `p202001` VALUES LESS THAN (737821),
PARTITION `p202002` VALUES LESS THAN (737850),
PARTITION `p202003` VALUES LESS THAN (737881),
PARTITION `p202004` VALUES LESS THAN (737911),
PARTITION `p202005` VALUES LESS THAN (737942),
PARTITION `p202006` VALUES LESS THAN (737972),
PARTITION `p202007` VALUES LESS THAN (738003),
PARTITION `p202008` VALUES LESS THAN (738034),
PARTITION `p202009` VALUES LESS THAN (738064),
PARTITION `p202010` VALUES LESS THAN (738095),
PARTITION `p202011` VALUES LESS THAN (738125),
PARTITION `p202012` VALUES LESS THAN (738156),
PARTITION `p202101` VALUES LESS THAN (738187),
PARTITION `p202102` VALUES LESS THAN (738215),
PARTITION `p202103` VALUES LESS THAN (738246),
PARTITION `p202104` VALUES LESS THAN (738276),
PARTITION `p202105` VALUES LESS THAN (738307),
PARTITION `p202106` VALUES LESS THAN (738337),
PARTITION `p202107` VALUES LESS THAN (738368),
PARTITION `p202108` VALUES LESS THAN (738399),
PARTITION `p202109` VALUES LESS THAN (738429),
PARTITION `p202110` VALUES LESS THAN (738460),
PARTITION `p202111` VALUES LESS THAN (738490),
PARTITION `p202112` VALUES LESS THAN (738521),
PARTITION `p202201` VALUES LESS THAN (738552),
PARTITION `p202202` VALUES LESS THAN (738580),
PARTITION `p202203` VALUES LESS THAN (738611),
PARTITION `p202204` VALUES LESS THAN (738641),
PARTITION `p202205` VALUES LESS THAN (738672),
PARTITION `p202206` VALUES LESS THAN (738702),
PARTITION `p202207` VALUES LESS THAN (738733),
PARTITION `p202208` VALUES LESS THAN (738764),
PARTITION `p202209` VALUES LESS THAN (738794),
PARTITION `p202210` VALUES LESS THAN (738825),
PARTITION `p202211` VALUES LESS THAN (738855),
PARTITION `p202212` VALUES LESS THAN (738886),
PARTITION `p202301` VALUES LESS THAN (738917),
PARTITION `p202302` VALUES LESS THAN (738945),
PARTITION `p202303` VALUES LESS THAN (738976),
PARTITION `p202304` VALUES LESS THAN (739006),
PARTITION `p202305` VALUES LESS THAN (739037),
PARTITION `p202306` VALUES LESS THAN (739067),
PARTITION `p202307` VALUES LESS THAN (739098),
PARTITION `p202308` VALUES LESS THAN (739129),
PARTITION `p202309` VALUES LESS THAN (739159),
PARTITION `p202310` VALUES LESS THAN (739190),
PARTITION `p202311` VALUES LESS THAN (739220),
PARTITION `p202312` VALUES LESS THAN (739251),
PARTITION `p202401` VALUES LESS THAN (739282),
PARTITION `p202402` VALUES LESS THAN (739311),
PARTITION `p202403` VALUES LESS THAN (739342),
PARTITION `p202404` VALUES LESS THAN (739372),
PARTITION `p202405` VALUES LESS THAN (739403),
PARTITION `p202406` VALUES LESS THAN (739433),
PARTITION `p202407` VALUES LESS THAN (739464),
PARTITION `p202408` VALUES LESS THAN (739495),
PARTITION `p202409` VALUES LESS THAN (739525),
PARTITION `p202410` VALUES LESS THAN (739556),
PARTITION `p202411` VALUES LESS THAN (739586),
PARTITION `p202412` VALUES LESS THAN (739617),
PARTITION `p202501` VALUES LESS THAN (739648),
PARTITION `p202502` VALUES LESS THAN (739676),
PARTITION `p202503` VALUES LESS THAN (739707),
PARTITION `p202504` VALUES LESS THAN (739737),
PARTITION `p202505` VALUES LESS THAN (739768),
PARTITION `p202506` VALUES LESS THAN (739798),
PARTITION `p202507` VALUES LESS THAN (739829),
PARTITION `p202508` VALUES LESS THAN (739860),
PARTITION `p202509` VALUES LESS THAN (739890),
PARTITION `p202510` VALUES LESS THAN (739921),
PARTITION `p202511` VALUES LESS THAN (739951),
PARTITION `p202512` VALUES LESS THAN (739982),
PARTITION `p202601` VALUES LESS THAN (740013),
PARTITION `p202602` VALUES LESS THAN (740041),
PARTITION `p202603` VALUES LESS THAN (740072),
PARTITION `p202604` VALUES LESS THAN (740102),
PARTITION `p202605` VALUES LESS THAN (740133),
PARTITION `p202606` VALUES LESS THAN (740163),
PARTITION `p202607` VALUES LESS THAN (740194),
PARTITION `p202608` VALUES LESS THAN (740225),
PARTITION `p202609` VALUES LESS THAN (740255),
PARTITION `p202610` VALUES LESS THAN (740286),
PARTITION `p202611` VALUES LESS THAN (740316),
PARTITION `p202612` VALUES LESS THAN (740347),
PARTITION `p202701` VALUES LESS THAN (740378),
PARTITION `p202702` VALUES LESS THAN (740406),
PARTITION `p202703` VALUES LESS THAN (740437),
PARTITION `p202704` VALUES LESS THAN (740467),
PARTITION `p202705` VALUES LESS THAN (740498),
PARTITION `p202706` VALUES LESS THAN (740528),
PARTITION `p202707` VALUES LESS THAN (740559),
PARTITION `p202708` VALUES LESS THAN (740590),
PARTITION `p202709` VALUES LESS THAN (740620),
PARTITION `p202710` VALUES LESS THAN (740651),
PARTITION `p202711` VALUES LESS THAN (740681)
);
mysql > EXPLAIN SELECT
DcfdSale.normal_quantity
FROM
dc_f_d_sale DcfdSale
LEFT JOIN dc_o_master DcoMaster ON DcfdSale.distributor_code = DcoMaster.organ_code
AND DcoMaster.paas_is_del = '0'
WHERE
DcfdSale.seller_date BETWEEN '2020-02-29 00:00:00'
AND '2020-03-01 23:59:59'
+--------------------------------+---------+-----------+-------------------------------------------------------------------------------------+---------------------------------------------------------------+
| id | estRows | task | access object | operator info |
+--------------------------------+---------+-----------+-------------------------------------------------------------------------------------+---------------------------------------------------------------+
| Projection_9 | 500.00 | root | | dev.dc_f_d_sale.normal_quantity |
| └─Union_10 | 500.00 | root | | |
| ├─IndexLookUp_19 | 250.00 | root | | |
| │ ├─IndexRangeScan_17(Build) | 250.00 | cop[tikv] | table:DcfdSale, partition:p202002, index:PRIMARY(seller_date, paas_id) | range:[2020-02-29,2020-03-01], keep order:false, stats:pseudo |
| │ └─TableRowIDScan_18(Probe) | 250.00 | cop[tikv] | table:DcfdSale, partition:p202002 | keep order:false, stats:pseudo |
| └─IndexLookUp_37 | 250.00 | root | | |
| ├─IndexRangeScan_35(Build) | 250.00 | cop[tikv] | table:DcfdSale, partition:p202003, index:PRIMARY(seller_date, paas_id) | range:[2020-02-29,2020-03-01], keep order:false, stats:pseudo |
| └─TableRowIDScan_36(Probe) | 250.00 | cop[tikv] | table:DcfdSale, partition:p202003 | keep order:false, stats:pseudo |
+--------------------------------+---------+-----------+-------------------------------------------------------------------------------------+---------------------------------------------------------------+
8 rows in set
Time: 0.016s
mysql >
3. dc_f_sale 表
mysql > SELECT
normal_quantity
FROM
dc_f_d_sale
WHERE
seller_date BETWEEN '2020-02-29 00:00:00' AND '2020-03-01 23:59:59'
LIMIT 1
+-----------------+
| normal_quantity |
+-----------------+
| 10.000000 |
+-----------------+
1 row in set
Time: 0.017s
mysql >
4. 我又尝试了 INNER JION 结果是可以的, 目前看来 只有 LEFT JION 有这个问题
mysql > SELECT
DcfdSale.normal_quantity
FROM
dc_f_d_sale DcfdSale
INNER JOIN dc_o_master DcoMaster ON DcfdSale.distributor_code = DcoMaster.organ_code
AND DcoMaster.paas_is_del = '0'
WHERE
DcfdSale.seller_date BETWEEN '2020-02-29 00:00:00' AND '2020-03-01 23:59:59'
LIMIT 1
+-----------------+
| normal_quantity |
+-----------------+
| 111.980000 |
+-----------------+
1 row in set
Time: 0.055s
mysql >
5. dc_o_master
CREATE TABLE `dc_o_master` (
`organ_code` varchar(100) DEFAULT NULL,
`organ_name` varchar(200) DEFAULT NULL,
`province` varchar(100) DEFAULT NULL,
`city` varchar(200) DEFAULT NULL,
`district` varchar(500) DEFAULT NULL,
`address` varchar(500) DEFAULT NULL,
`property_one` varchar(32) DEFAULT NULL,
`merge_to` varchar(200) DEFAULT NULL,
`parent_id` varchar(100) DEFAULT NULL,
`organ_type` varchar(32) DEFAULT NULL,
`level` varchar(32) DEFAULT NULL,
`nature` varchar(32) DEFAULT NULL,
`organ_used_names` varchar(2000) DEFAULT NULL,
`is_territory` varchar(32) DEFAULT NULL,
`su` varchar(500) DEFAULT NULL,
`bai` varchar(500) DEFAULT NULL,
`erp_code_one` varchar(32) DEFAULT NULL,
`geography_id` varchar(100) DEFAULT NULL ,
`org_note` varchar(500) DEFAULT NULL ,
`grade` varchar(32) DEFAULT NULL ,
`drugstore_type` varchar(32) DEFAULT NULL ,
`alias` varchar(500) DEFAULT NULL ,
`first_in_terr_date` varchar(32) DEFAULT NULL ,
`erp_code` varchar(32) DEFAULT NULL ,
`is_disable` varchar(32) DEFAULT '0' ,
`create_user` varchar(32) DEFAULT NULL ,
`create_time` datetime DEFAULT NULL ,
`update_user` varchar(32) DEFAULT NULL ,
`update_time` datetime DEFAULT NULL ,
`version_no` varchar(32) DEFAULT NULL ,
`is_del` varchar(32) DEFAULT '0' ,
`id` varchar(100) NOT NULL,
`sync_time` datetime DEFAULT NULL ,
`head_office_code` varchar(100) DEFAULT NULL ,
`head_office_name` varchar(200) DEFAULT NULL ,
`head_office_used_names` varchar(2000) DEFAULT NULL ,
`qualified_hospital` varchar(200) DEFAULT NULL ,
`tripartite_certification` varchar(100) DEFAULT NULL ,
`sap_code` varchar(100) DEFAULT NULL ,
`legal_entity` varchar(100) DEFAULT NULL ,
`status` varchar(32) DEFAULT NULL ,
`operat_type` varchar(32) DEFAULT NULL ,
`mdm_id` varchar(200) DEFAULT NULL ,
`error_memo` varchar(2000) DEFAULT NULL ,
`mapping_id` varchar(100) DEFAULT '' ,
PRIMARY KEY (`id`),
KEY `geography_id_fk_index` (`geography_id`),
KEY `codeName_index` (`organ_code`,`organ_name`,`is_del`),
KEY `organ_name` (`organ_name`),
KEY `index_mdm_id` (`mdm_id`),
KEY `index_1` (`is_del`,`organ_code`,`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='主数据';