먼저 데이터베이스 엔진으로 PSQL을 사용하고 있습니다.SQL 다른 테이블의 단일 필드에서 여러 행 삽입
feed_outputs
----------------------------
id | feed_id | key ...
----------------------------
6 5 'Feed 1'
7 5 'Feed 2'
8 5 'Feed 3'
9 5 'Feed 4'
10 5 'Feed 5'
11 6 'Feed 1'
그리고 다른 테이블 :
alerts
-------------------------------------------
feed_type_id | priority | label | feed_output_id
-------------------------------------------
1 1 'Label1' 11
는 내가하고 싶은 것은 feed_outputs의 테이블 feed_id=5
및 사용의 모든 피드 출력을 선택하는 INSERT 문을 만드는 것입니다 나는 다음과 같은 테이블이 알림 문에 feed_output_id
을 새 행으로 삽입하는 insert 문에서 내가 뭘 해봤
SELECT id FROM feed_outputs where feed_id=5;
INSERT INTO alerts (feed_type_id,priority,label,feed_output_id) VALUES
(1,1,'Label2', <each feed_output.id from statement above>);
:
나는 기본적으로 다음과 같은 두 개의 쿼리 결합하려는
WITH outputs AS (select * from feed_outputs where feed_id=5)
INSERT INTO alerts (feed_type_id,priority,label,feed_output_id) VALUES
(1,1,'Label2',(select outputs.id from outputs));
을하지만 그것은 분명히 값 섹션에 포함 된 SELECT 문이 작동하지 않습니다 insert 문. 라벨을 동일하게 유지하기를 원할 것입니다 (예제 필드 일뿐입니다). 변화시키고 싶은 유일한 것은 피드 출력 ID입니다. 따라서 최종 알림 표는 다음과 같아야합니다.
alerts
-------------------------------------------
feed_type_id | priority | label | feed_output_id
-------------------------------------------
1 1 'Label1' 11
1 1 'Label2' 6
1 1 'Label2' 7
1 1 'Label2' 8
1 1 'Label2' 9
1 1 'Label2' 10
현재 테이블 구성에서이 점을 달성하는 데 도움이되는 쿼리를 알고 있습니까?
w3schools에 연결하지 마십시오. 오류가 가득 찼습니다. Postgres 매뉴얼이 더 나은 선택이었을 것입니다. http://www.postgresql.org/docs/current/static/sql-insert.html –
굉장! 생각보다 단순합니다. 감사! – jrcrawfo
@horse 네, 그렇습니다. 그렇기 때문에 stackoverflow.com이지만 계속 돌아오고 있습니다. :-) –