2009-11-19 61 views
1

以下查詢:SQL:列計數不匹配的行數

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中有隻有三列。我究竟做錯了什麼?

回答

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子句數據。

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

試試這個:

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' 
相關問題