簡體   English   中英

如果另一個表中存在ID,則插入行

[英]Insert row if ID exists in another table

我想檢查是否有插入行的方法,但前提是另一個表中已經存在一個ID。 例如:

INSERT INTO table1 (carID) 
SELECT carID FROM table2 WHERE table1.carID IN table2.carID

基本上,我只想在table1中找到carID才能插入該ID。

嘗試使用EXISTS

INSERT INTO table1 (carID)
SELECT t2.carID
FROM table2 t2
WHERE EXISTS (SELECT 1 FROM table1 t1 WHERE t1.carID = t2.carID);

您可以將table2中存在的所有carID添加到table1

INSERT INTO table1 (carID) 
SELECT carID FROM table2

如果要應用條件,則可以添加WHERE零件。

你可以用in

    INSERT INTO table1 (carID) 
    SELECT carID FROM table2 WHERE table2.carID IN (select carID from table1 where carID is not null)

您可以從table2選擇ID,然后檢查WHERE子句中的給定ID。 如果table2沒有匹配的行,則SELECT返回空集,並且沒有任何內容插入table1 如果存在具有該ID的行,則將其選中並插入。 如果一個ID在table2可以出現多次,但您只想插入一次,則可以使用DISTINCT

INSERT INTO table1
            (carid) 
            SELECT DISTINCT
                   carid
                   FROM table2
                        WHERE carid = <given carid>;

暫無
暫無

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

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