복붙노트

[SQL] MySQL의 오류 1241 : 피연산자 1 열을 포함해야합니다 (들)

SQL

MySQL의 오류 1241 : 피연산자 1 열을 포함해야합니다 (들)

나는 표 2로 표에서 데이터를 삽입하는 것을 시도하고있다

insert into table2(Name,Subject,student_id,result)
select (Name,Subject,student_id,result)
from table1;

표 2에 대한 키 student_id된다.

어떤 중복이없는 것을 가정합니다.

(들) 피연산자 1 열을 포함해야한다 : 1241 MySQL의 오류 : 나는 오류

표 2에서 네 개의 열이 있습니다.

해결법

  1. ==============================

    1.구문 오류는 () 선택에서 제거합니다.

    구문 오류는 () 선택에서 제거합니다.

    insert into table2 (name, subject, student_id, result)
    select name, subject, student_id, result
    from table1;
    
  2. ==============================

    2.그냥 SELECT 문에 (그리고)을 제거 :

    그냥 SELECT 문에 (그리고)을 제거 :

    insert into table2 (Name, Subject, student_id, result)
    select Name, Subject, student_id, result
    from table1;
    
  3. ==============================

    3.파서 인상 같은 예외를 만드는 또 다른 방법은 다음과 같은 잘못된 조항입니다.

    파서 인상 같은 예외를 만드는 또 다른 방법은 다음과 같은 잘못된 조항입니다.

    SELECT r.name
    FROM roles r
    WHERE id IN ( SELECT role_id ,
                         system_user_id
                     FROM role_members m
                     WHERE r.id = m.role_id
                     AND m.system_user_id = intIdSystemUser
                 )
    

    ID 열에이 예상되는 중첩 된 SELECT 문에 의해 반환 된 결과에서 하나의 열 (ROLE_ID)의 값과 일치하지만 때문에, 기술적으로 정확 파서는 피연산자로 보는 IN 절 반환 두 개의 열에서 중첩 된 SELECT 문 목록을 반환합니다.

    완벽을 위해, 올바른 구문은 다음이다.

    SELECT r.name
    FROM roles r
    WHERE id IN ( SELECT role_id
                     FROM role_members m
                     WHERE r.id = m.role_id
                     AND m.system_user_id = intIdSystemUser
                 )
    

    이 쿼리뿐만 아니라 구문 분석,하지만 예상 된 결과를 반환 한 부분 인의 저장 프로 시저.

  4. from https://stackoverflow.com/questions/15820288/mysql-error-1241-operand-should-contain-1-columns by cc-by-sa and MIT license