2009-11-19 4 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' 
관련 문제