programing

MySQL 여러 행을 반환하는 SELECT 하위 쿼리를 사용하여 테이블에 삽입하려면 어떻게 해야 합니까?

shortcode 2022. 10. 25. 20:14
반응형

MySQL 여러 행을 반환하는 SELECT 하위 쿼리를 사용하여 테이블에 삽입하려면 어떻게 해야 합니까?

MySQL 여러 행을 반환하는 SELECT 하위 쿼리를 사용하여 테이블에 삽입하려면 어떻게 해야 합니까?

  INSERT INTO Results
    (
     People,
     names,
    )
    VALUES
    (
     (
       SELECT d.id
       FROM Names f
       JOIN People d ON d.id  = f.id
     ),

     (
      "Henry"
     ),
    );

서브쿼리에서 반환되는 모든 결과로 새 테이블을 채웁니다.ERROR 1242(21000)를 표시하지 않고 이를 실행하는 방법: 하위 쿼리가 두 개 이상의 행을 반환합니다.

INSERT INTO Results (People, names )
   SELECT d.id, 'Henry'
   FROM Names f
   JOIN People d ON d.id  = f.id

정적 문자열 결합Henry당신의 것과 함께SELECT문의합니다.

여기 제가 잘 작동하는 것이 있습니다.조금 길지만 몇 배나 더 많은 데이터를 섞어야 합니다.

값이 있는 table2의 table1에 여러 행을 삽입합니다.예:

INSERT INTO table1 (col1, col2, col3, col4, col5) 
SELECT col1,col2,col3,col4,col5 
FROM table2 t2 
WHERE t2.val2 IN (MULTIPLE VALUES) 
AND (Another Conditional);

하드 코드화된 값을 삽입하여 반복 데이터가 포함된 여러 행을 삽입할 수 있습니다.

INSERT INTO table1 (col1, col2, col3, col4, col5) 
SELECT "Value", col2, col3, "1900-01-01","9999-12-31" 
FROM table2 t2 
WHERE t2.val2 IN (MULTIPLE VALUES) 
AND (Another Conditional);

삽입된 모든 행에 "Value", "1900-01-01", "9999-12-31"이 반복됩니다.

  INSERT INTO Results
    (
     People,
     names,
    )
    SELECT d.id, 'Henry'
    FROM Names f
    JOIN People d ON d.id  = f.id
INSERT INTO Results
    (
     People,
     names,
    )
    VALUES
    (
     (
       SELECT d.id
       FROM Names f
       JOIN People d ON (d.id  = f.id) limit 1
     ),

     (
      "Henry"
     ),
    );

이 오류(서브쿼리는 1개 이상의 행을 반환함)의 이유는 괄호()를 사용하기 때문입니다.더 조심하여 최선의 답을 찾아라.서브쿼리 주변의 파편합성은 포함되어 있지 않습니다.

MySql에서는 다음과 같이 문자열의 여러 값을 삽입하여 중복을 방지할 수 있습니다.감사해요.

   insert into brand(name) select * from ( 
select 'Fender' as name 
union select 'a' 
union ..... ) t 
where not exists (select 1 from brand t2 where t2.name COLLATE latin1_general_ci = t.name COLLATE utf8mb4_unicode_ci )

ec_module(parentid,name)에 삽입하여 elementid를 선택하고 ec_module에서 'STARTUP'을 선택합니다. 여기서 name = 'BG';

insert 문은 조건이 충족되고 라벨 문자열이 있는 테이블에서 값 elementid를 가져옵니다.

언급URL : https://stackoverflow.com/questions/9422529/mysql-how-do-you-insert-into-a-table-with-a-select-subquery-returning-multiple-r

반응형