如何解决MySQL无法识别join中的possible_keys
我试图通过联接两个表giao_vien
和lop_mon
进行查询。
以下是我的表格结构:
CREATE TABLE `lop_mon` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,`key_index` varchar(250) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,`khoi_key_index` varchar(250) DEFAULT NULL,`lop_key_index` varchar(250) DEFAULT NULL,`gv_key_index` varchar(250) DEFAULT NULL,`mon_key_index` varchar(250) DEFAULT NULL,`ma_so` varchar(50) DEFAULT NULL,`ma_phong` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,`nam_hoc` int(11) NOT NULL,`ma_truong` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,`ma_khoi` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,`ma_lop` varchar(50) NOT NULL,`ma_giao_vien` varchar(50) NOT NULL,`ma_mon_hoc` varchar(50) DEFAULT NULL,`hoc_ky` tinyint(4) NOT NULL,`guid` varchar(250) DEFAULT NULL,`processid_monhoc` int(11) DEFAULT NULL,`processid_giaovien` int(11) DEFAULT NULL,`processid_canbo` int(11) DEFAULT NULL,`source_data` varchar(50) DEFAULT NULL,`ten_gv_chat_ph` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,`ma_giao_vien_bgd` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,`ma_lop_bgd` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,`ma_mon_hoc_bgd` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,`gv_guid` char(36) DEFAULT NULL,`truong_key_index` varchar(255) DEFAULT NULL,`create_date` datetime DEFAULT NULL,`updatedAt` datetime DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE,UNIQUE KEY `key_UNIQUE` (`key_index`),UNIQUE KEY `unique_lop_mon_gv_keyindex_hoc_ky` (`lop_key_index`,`gv_key_index`,`mon_key_index`,`hoc_ky`) USING BTREE,KEY `lopmon_keyindex` (`mon_key_index`),KEY `lopmon_idx_mamonhoc` (`ma_mon_hoc`),KEY `idx_gv_key_index` (`gv_key_index`),KEY `lopmon_idx_lop_key_index` (`lop_key_index`),KEY `lopmon_idx_key_index` (`khoi_key_index`),KEY `lopmon_idx_ma_truong` (`ma_truong`),KEY `lopmon_idx_nam_hoc` (`nam_hoc`),KEY `lopmon_idx_ma_khoi` (`ma_khoi`),KEY `lopmon_idx_hoc_ky` (`hoc_ky`),KEY `lopmon_idx_key_lop_mon` (`lop_key_index`,`mon_key_index`),KEY `lopmon_idx_key_lop_gv` (`lop_key_index`,`gv_key_index`),KEY `lopmon_idx_key_mon_gv` (`mon_key_index`,KEY `lopmon_idx_key_lop_mon_gv` (`lop_key_index`,KEY `lopmon_idx_key_truong_lop_mon_gv` (`ma_truong`,`lop_key_index`,KEY `lop_mon__index_gv_guid` (`gv_guid`),KEY `lopmon_idx_truong_key_index` (`truong_key_index`)
) ENGINE=MyISAM AUTO_INCREMENT=23142297 DEFAULT CHARSET=latin1
我的查询:
select * from giao_vien inner join lop_mon on lop_mon.gv_key_index = giao_vien.key_index
where giao_vien.key_index = 'shcm_2019_01645344018'
当我解释时:
MySQL无法识别密钥:
KEY `idx_gv_key_index` (`gv_key_index`)
我检查另一个查询:
SELECT * FROM enetviet.lop_mon where gv_key_index = 'shcm_2019_01645344018';
键idx_gv_key_index
仍然有效。我不知道是什么问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。