MySQL的。从结果查询填充表中不同列数

时间:2015-09-01 13:51:05

标签: mysql sql

我有一个包含12列的空表(第一个是ID AUTO_INCREMENT)。

这个表我必须直接从一个给我8列的查询中填充。这是查询

INSERT INTO table_name
    SELECT t.one,
           ag.two AS two_name,
           a.three,
           a.four,
           t.five,
           s.six as six_name,
           s.seven as seven_name,
           s.eight as eight_name,
           '-',
           '-',
           '-'
    FROM table_t AS t
        JOIN table_st AS st ON t.trip_id = st.trip_id 
        JOIN table_s AS s ON s.s_id = st.a_id 
        JOIN table_a AS a ON a.a_id = t.a_id 
        JOIN agency_group AS ag ON ag.id = t.a_id
    WHERE 
        st.somefield = 1
    ORDER BY t.somefield ASC 
                     ;

如果我单独运行此子查询(没有INSERT INTO table_name),它可以正常工作。

当我完全像上面所写的那样运行它以便将这些结果直接输入到表中时我得到了这个错误:

  

1136 - 列数与第1行的值计数不匹配

PS。所有列类型和名称都匹配。

有人可以用手指指出问题在哪里?感谢

1 个答案:

答案 0 :(得分:2)

执行插入时始终列出列:

INSERT INTO table_name (col1, col2, . . ., coln)
    SELECT col1, col2, . . ., coln
    FROM . . .

错误信息非常清楚。该表的列数多于或少于SELECT