2015-01-03 2 views
0

테이블에 삽입 한 행의 값 중 하나가 다른 SELECT SQL 쿼리의 결과 인 INSERT SQL 문이 있습니다. 나는이 두 진술을 어떻게 하나로 적절하게 결합시킬 수 있는지 궁금해했다. 고맙습니다.두 SQL 문을 하나의 명령문으로 결합하려면 어떻게합니까?

SELECT 문 :

SELECT mpca.creative_attribute_id 
    FROM media_property_creative_attribute as mpca 
    WHERE mpca.media_property_id=54 
     and mpca.media_property_creative_attribute_external_id=101; 

이 쿼리의 결과는 내가 [creative_attribute_id]로 다음 INSERT 문에 나타내는 것 하나의 값이 될 것입니다.

INSERT 문이 하나 문에

INSERT INTO ad_creative_attribute_list (ad_id, creative_attribute_id) 
    VALUES (12, [creative_attribute_id]) 
    WHERE NOT EXISTS (
     SELECT * 
     FROM ad_creative_attribute_list as acal 
     WHERE acal.ad_id=12 
      AND acal.creative_attribute_id=[creative_attribute_id]) 

를 결합 할 수 있습니까? -

답변

1

내가 제안에 따라 쿼리를 업데이트 한

업데이트가 귀하의 경우에 맞게 바랍니다 :

INSERT INTO 
    ad_creative_attribute_list (ad_id, creative_attribute_id) 
SELECT 
    12, mpca.creative_attribute_id 
FROM 
    media_property_creative_attribute as mpca 
WHERE 
    mpca.media_property_id = 54 
    and mpca.media_property_creative_attribute_external_id = 101 
    AND NOT EXISTS (SELECT acal.creative_attribute_id 
        FROM ad_creative_attribute_list as acal 
        WHERE acal.ad_id = 12 
        AND mpca.creative_attribute_id = acal.creative_attribute_id); 
+0

좋아요. +1, 하나의 문제가 아닌 것으로 보입니다. 목록에 하나의 NUll 값이 있으면 빈 결과가 반환되므로 사용하지 않는 것이 더 좋습니다 – radar

+0

음 ... OP가 아닙니다 – radar

+0

죄송합니다.) –

0

당신은 선택 구문에 삽입 사용할 수

가되지 않습니다 존재 상관 하위 쿼리

INSERT INTO ad_creative_attribute_list (ad_id, creative_attribute_id) 
    SELECT 12, mpca.creative_attribute_id 
FROM media_property_creative_attribute as mpca 
WHERE mpca.media_property_id=54 
    and mpca.media_property_creative_attribute_external_id=101 
    And NOT EXISTS (
    SELECT 1 
    FROM ad_creative_attribute_list as acal 
    WHERE acal.ad_id=12 
     AND acal.creative_attribute_id= mpca.creative_attribute_id) 
관련 문제