Операнд должен содержать 1 столбец (столбцы) при вставке в mysql

0

У меня есть две таблицы, которые являются пользователями и информацией. Необходимо вставить в информационную таблицу с максимальным идентификатором из таблицы пользователя. Я попытался использовать нижеследующий запрос с вставкой одной строки, он работал нормально. Но я стараюсь, чтобы несколько вставить его нет. получение ошибки как "# 1241 - Операнд должен содержать 1 столбец"

INSERT INTO user( name, email, password )
values
    (
        ((SELECT MAX( id ) as id from info), '[email protected]', '123'),
        ((SELECT MAX( id ) as id from info), '[email protected]', '123'))
Теги:

1 ответ

1
Лучший ответ

При вставке из select нам не нужно использовать VALUES:

INSERT INTO user( name, email, password )
SELECT MAX(id), '[email protected]', '123' FROM info
UNION ALL
SELECT MAX(id), '[email protected]', '123' FROM info;

Также обратите внимание, что вам, вероятно, не нужно завершать запрос MAX(id) в качестве подзапроса. Вместо этого просто выберите константы, которые вы хотите в одном запросе верхнего уровня.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню