我想检查是否有插入行的方法,但前提是另一个表中已经存在ID。例如:
INSERT INTO table1 (carID)
SELECT carID FROM table2 WHERE table1.carID IN table2.carID
基本上,我只想在表1中找到carID即可。
答案 0 :(得分:2)
尝试使用EXISTS
:
INSERT INTO table1 (carID)
SELECT t2.carID
FROM table2 t2
WHERE EXISTS (SELECT 1 FROM table1 t1 WHERE t1.carID = t2.carID);
答案 1 :(得分:1)
您可以将table1
中存在的所有carID
添加到table2
:
INSERT INTO table1 (carID)
SELECT carID FROM table2
如果要应用条件,可以添加WHERE
部分。
答案 2 :(得分:1)
您可以使用in
INSERT INTO table1 (carID)
SELECT carID FROM table2 WHERE table2.carID IN (select carID from table1 where carID is not null)
答案 3 :(得分:1)
您可以只从table2
中选择ID,然后在WHERE
子句中检查给定的ID。如果table2
中没有匹配的行,则SELECT
返回空集,并且没有任何内容插入table1
中。如果存在具有该ID的行,则将其选中并插入。如果一个ID在table2
中可以出现多次,但您只想插入一次,则可以使用DISTINCT
。
INSERT INTO table1
(carid)
SELECT DISTINCT
carid
FROM table2
WHERE carid = <given carid>;