簡體   English   中英

如何將兩個SQL語句合並為一個語句?

[英]How do I combine two SQL statements into one statement?

我有一條INSERT SQL語句,其中我插入表中的行的值之一是另一個SELECT 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;

該查詢的結果將是一個值,我將在下一個INSERT語句中將其表示為[creative_attribute_id]。

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])

可以合並為一個語句嗎?

更新

我已根據建議更新了查詢-希望它適合您的情況:

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);

您可以在選擇語法中使用插入

不存在將被關聯的子查詢

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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM