SQL:列计数与行计数不匹配

时间:2009-11-19 19:55:51

标签: sql drupal-6

以下查询:

INSERT INTO term_node( nid, vid, tid )
VALUES (
    (
     SELECT ctb.nid, ctb.vid, 35
     FROM content_type_bout AS ctb
     WHERE field_school_value_c = 'Lafayette'
    )
)

产生此错误:

#1136 - Column count doesn't match value count at row 1

term_node只有三列。我做错了什么?

3 个答案:

答案 0 :(得分:9)

以下内容应该有效:

INSERT INTO term_node( nid, vid, tid )
 SELECT ctb.nid, ctb.vid, 35
 FROM content_type_bout AS ctb
 WHERE field_school_value_c = 'Lafayette'

在插入单行数据时,只能使用VALUES子句。

答案 1 :(得分:2)

你没有说你正在使用哪个SQL引擎,但我的预感是你使用了太多的括号,因此它将3列分组到一个数组中,并希望将它们发布到一列中。

尝试:

INSERT INTO term_node( nid, vid, tid )
VALUES (
     SELECT ctb.nid, ctb.vid, 35
     FROM content_type_bout AS ctb
     WHERE field_school_value_c = 'Lafayette'
)

甚至只是:

INSERT INTO term_node( nid, vid, tid )
     SELECT ctb.nid, ctb.vid, 35
     FROM content_type_bout AS ctb
     WHERE field_school_value_c = 'Lafayette'

答案 2 :(得分:2)

试试这个:

INSERT INTO term_node( nid, vid, tid )
     SELECT ctb.nid, ctb.vid, 35
     FROM content_type_bout AS ctb
     WHERE field_school_value_c = 'Lafayette'