以下查询:
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
只有三列。我做错了什么?
答案 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'