【发布时间】:2017-11-02 03:26:54
【问题描述】:
尝试在查询下方运行,但显示错误:
截断不正确的 DOUBLE 值
谁能解释一下,我错过了什么?
SELECT exam_type_name
FROM exam_types
WHERE exam_type_id IN (SELECT ids FROM exam WHERE id = 37);
上面的子查询返回字符串36,37,39,40
主表定义:
CREATE TABLE `careerturn_db`.`exam_types` (
`exam_type_id` int(11) NOT NULL AUTO_INCREMENT,
`exam_type_name` varchar(255) DEFAULT NULL,
PRIMARY KEY (`exam_type_id`)
) ENGINE=InnoDB AUTO_INCREMENT=52 DEFAULT CHARSET=latin1;
子查询表定义:
CREATE TABLE `careerturn_db`.`exam` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`ids` varchar(45) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=38 DEFAULT CHARSET=latin1;
错误:
【问题讨论】:
-
是的,这不是一个正确的
DOUBLE值。你想达到什么目的? -
我正在尝试获取所有拥有
36,37,39,40id 的exam_type_name -
id列的类型是什么?您可以发布表定义吗? -
你的子查询没有意义:
SELECT id FROM exam WHERE id = 37。id始终为 37。 -
exam_types的定义呢?