다른 쿼리에서 얻은 데이터로 테이블을 "업그레이드"해야하는 시나리오가 나타났습니다. 누락 된 값을 추가하여 삽입해야 할 필요가 있지만 제대로 표시되지 않는 것 같습니다.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를 왼쪽
처럼 뭔가를 시도하고있다,하지만 난을 얻을 "열 수가 일치하지 않습니다"(의미가 맞음)
이런 식으로하는 것
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
);
"Subquery returns than row"오류가 발생합니다.
어떻게하면이 아이디어를 만들 수 있습니까? UID
가 auto_increment
로 정의 된 경우
건배
하위 쿼리를 별도로 실행하는 경우 1 개의 레코드 만 반환합니까? – Robert
@ 로버트. 아니요, 하나 이상의 레코드를 가질 수 있습니다. –