Подтвердить что ты не робот

MySQL Как вы вставляете INTO в таблицу с подзапросом SELECT, возвращающим несколько строк?

MySQL Как вы вставляете INTO в таблицу с подзапросом SELECT, возвращающим несколько строк?

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

     (
      "Henry"
     ),
    );

I WANT, чтобы заполнить новую таблицу всеми результатами, возвращаемыми из этого подзапроса. Как это сделать без получения ОШИБКИ 1242 (21000): Подзапрос возвращает более 1 строки

4b9b3361

Ответ 1

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

Объедините статическую строку Henry с запросом SELECT.

Ответ 2

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

     (
      "Henry"
     ),
    );

Ответ 3

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

Ответ 4

Вот что я нашел, что хорошо работает. Это немного длинный, но много раз дополнительные данные нужно перетасовывать.

Вставьте несколько строк в таблицу1 из таблицы2 со значениями. ПРИМЕРЫ:

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);

Обратите внимание, что: "Значение", "1900-01-01", "9999-12-31" будет повторяться во всех вставленных строках.

Ответ 5

Вставить в ec_element (parentid, name) select elementid, 'STARTUP' из ec_element, где name = 'BG';

Оператор выражения

принимает значения elementid из таблицы, найденной с выполненным условием и строкой метки.