Я столкнулся с сценарием, где мне нужно «обновить» таблицу данными, полученными из другого запроса. Я добавляю отсутствующие значения, поэтому мне нужно будет вставить, но я не могу понять, как это правильно.mysql вставить многострочный запрос запроса в таблицу
Таблица назначения является следующая
CREATE TABLE `documentcounters` (
`UID` int,
`DataChar`,
`SeqNum` ,
`LastSignature`,
`DocumentType`,
`SalesTerminal`,
`Active`,
PRIMARY KEY (`UID`)
) ENGINE=InnoDB
, и я пытаюсь сделать что-то вроде
INSERT INTO documentcounters
SELECT Q1.in_headers, -1,NULL, 17,0,0 FROM
(SELECT DISTINCT(DocumentSeries) as in_headers FROM transactionsheaders)AS Q1
LEFT JOIN
(SELECT DISTINCT(DataChar) as in_counters FROM documentcounters)AS Q2
ON Q1.in_headers=Q2.in_counters WHERE Q2.in_counters IS NULL;
Я оставил UID, потому что я хочу, чтобы команда вставки, чтобы создать его, но я получаю «Количество столбцов не соответствует», что имеет смысл (darn!)
Выполнение чего-то вроде
INSERT INTO `documentcounters`
(`DataChar`,`SeqNum`,`LastSignature`,`DocumentType`,`SalesTerminal`,`Active`)
VALUES
(
(SELECT Q1.in_headers FROM
(SELECT DISTINCT(DocumentSeries) as in_headers FROM transactionsheaders)AS Q1
LEFT JOIN
(SELECT DISTINCT(DataChar) as in_counters FROM documentcounters)AS Q2
ON Q1.in_headers=Q2.in_counters WHERE Q2.in_counters IS NULL),-1,NULL,17,0,0
);
дает ошибку «Подзапрос возвращает более 1 строки».
Любые идеи, как я могу сделать эту работу?
Приветствия
Если вы запускаете отдельные запросы, они возвращают только 1 запись? – Robert
@Robert. Нет, у меня может быть более одной записи –