선정 된 데이터를 여러 삽입 수행 기본적으로 syntex는 맞지만 여러 개의 INSERTS
에 대해 확실하지 않습니다. 정상적인 INSERT
문을 사용하여이 작업을 수행 할 수 있음을 알고 있지만 VALUES
절에있는 SELECT
에 대해 확실하지 않습니다.나는이 sudo는 쿼리를 수행 할
저는 실제 데이터베이스로 작업하고 있으며 모든 것을 백업했지만 직접적인 실험을 최소한으로하고 싶습니다.
선정 된 데이터를 여러 삽입 수행 기본적으로 syntex는 맞지만 여러 개의 INSERTS
에 대해 확실하지 않습니다. 정상적인 INSERT
문을 사용하여이 작업을 수행 할 수 있음을 알고 있지만 VALUES
절에있는 SELECT
에 대해 확실하지 않습니다.나는이 sudo는 쿼리를 수행 할
저는 실제 데이터베이스로 작업하고 있으며 모든 것을 백업했지만 직접적인 실험을 최소한으로하고 싶습니다.
당신은 UNION을 사용할 수 있습니다
INSERT INTO table1 (foreign_key, meta_key, meta_value)
SELECT id, 'first meta key', 'first meta value' FROM table2 WHERE condition = 'met'
UNION
SELECT id, 'second meta key', 'second meta value' FROM table2 WHERE condition = 'met'
UNION
SELECT id, 'third meta key', 'third meta value' FROM table2 WHERE condition = 'met'
당신은 값 사이에 쉼표를 추가해야합니다.
INSERT INTO table1 (foreign_key, meta_key, meta_value)
VALUES (
(SELECT id FROM table2 WHERE condition = 'met'), 'first meta key', 'first meta value'
),
(
(SELECT id FROM table2 WHERE condition = 'met'), 'second meta key', 'second meta value'
),
(
(SELECT id FROM table2 WHERE condition = 'met'), 'third meta key', 'third meta value'
)
그리고 모든 하위 쿼리는 1 행만 반환해야합니다.
시도해보십시오. Sql Fiddle Demo 정상적인 방법으로
또는 사용 노조는 :
INSERT INTO table1 (foreign_key, meta_key, meta_value)
SELECT id, 'first meta key' , 'first meta value' FROM table2 WHERE condition = 'met')
UNION ALL
SELECT id, 'second meta key', 'second meta value' FROM table2 WHERE condition = 'met')
UNION ALL
SELECT id, 'third meta key' , 'third meta value' FROM table2 WHERE condition = 'met')
여기 오해의 원인이 있습니다. 나는 질문을 업데이트 할 것입니다 - 이것이 여전히 효과가 있는지 알려주십시오. –
아니요, 쿼리가 작동하지 않습니다 (SQLServer 2005를 사용하고 있습니다). – Hrabal