导致列数的SQL语句与第1行的值计数不匹配有什么问题?

Ave*_*Joe 1 php mysql

Mysql表(migration_terms)字段如下

oldterm   count    newterm  seed
Run Code Online (Sandbox Code Playgroud)

我使用了以下create table语句.

CREATE TABLE `migration_terms` 
    ( 
      `oldterm` varchar(255) DEFAULT NULL, 
      `count` smallint(6) DEFAULT '0', 
      `newterm` varchar(255) DEFAULT NULL, 
      `seed` int(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`seed`) 
    )   ENGINE=InnoDB DEFAULT CHARSET=utf8
Run Code Online (Sandbox Code Playgroud)

它有效,没有问题.

但是当我用下面的insert into语句来填充它时;

"INSERT INTO migration_terms 
     SELECT looseterm as oldterm, 
            COUNT(seed) AS count 
            FROM looseterms 
            GROUP BY looseterm 
            ORDER BY count DESC "
Run Code Online (Sandbox Code Playgroud)

我收到这个错误;

 Column count doesn't match value count at row 1
Run Code Online (Sandbox Code Playgroud)

我想不通为什么?

如果需要looseterms表的表结构,则它由以下create table语句创建.

CREATE TABLE looseterms
(
     `seed` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
     `looseterm` varchar(255)
)
Run Code Online (Sandbox Code Playgroud)

Con*_*rix 8

如果select语句的列数少于表,则需要指定列

"INSERT INTO migration_terms 
        (oldterm, 
         count) 
SELECT looseterm   AS oldterm, 
       Count(seed) AS count 
FROM   looseterms 
GROUP  BY looseterm 
ORDER  BY count DESC  "
Run Code Online (Sandbox Code Playgroud)

来自插入语法的MySql文档

如果没有为INSERT ... VALUES或INSERT ... SELECT指定列名列表,则表中每列的值必须由VALUES列表或SELECT语句提供.如果您不知道表中列的顺序,请使用DESCRIBE tbl_name查找.