簡體   English   中英

根據另一個表的條件插入 sql 語句

[英]INSERT sql statement based on condition from another table

我正在嘗試根據另一個表中的條件將值插入到一個表中。 理想情況下,我想要這樣的東西:

INSERT INTO table_a SET user_id = 'contactId'
WHERE
    table_b.user_id = 'userA' 
    AND table_b.contact_id = 'contactId' 
    AND user_blocked = false

所以在創建新的 table_a 條目之前,我想通過檢查 table_b 來確保用戶沒有被阻止。

我知道我不能在 WHERE 中使用 INSERT,所以不知道如何做到這一點。

似乎您正在尋找INSERT ... SELECT查詢

INSERT INTO table_a (user_id) 
SELECT 'contactId'
FROM table_b AS tb
WHERE
    tb.user_id = 'userA' 
    AND tb.contact_id = 'contactId' 
    AND tb.user_blocked = false

如果子查詢不返回任何內容,則外部INSERT不會發生。

您可以使用“從選擇插入”。 例如,鏈接將幫助您。

您可以為此使用 T-SQL,或構建一個存儲過程。

首先檢查user_id是否在table_b被阻塞,如果答案為 false,則將值插入table_a

這是一個例子:

DECLARE @user_id INT = 1234

IF ((SELECT user_blocked FROM table_b b WHERE b.USER_id = @user_id) = 'false')
BEGIN
    INSERT INTO table_a 
    VALUES(@user_id,....)
END

暫無
暫無

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

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