2016-06-08 125 views
0

所以,我想要插入一行到表teams_views如果该行尚不存在。这是一个简单的查询,但我遇到的问题包括对此查询的选择。基本上,该行中的一个字段需要从另一个表中获取。SQL - 从其他行插入行选择如果行不存在

这里是什么,我想建立在SQL的崩溃:

INSERT INTO 
    teams_views (col1, col2) 
VALUES 
    (SELECT col1 FROM teams WHERE teams.identifier = 1234, col2) 
WHERE 
    teams_views.col1 
IS NULL 

我能做些什么来得到这个工作的查询? 谢谢。

+0

看看这篇文章:http://stackoverflow.com/a/5391390/1666800 –

+0

是'col1'在表中的唯一键吗?你可以使用'INSERT IGNORE'来防止添加一行,如果它已经存在。 – Barmar

回答

1
INSERT INTO teams_views (col1, col2) 
SELECT t.col1 , t.col2 
FROM teams t 
WHERE t.identifier = 1234 
AND NOT EXISTS (SELECT 1 FROM teams_views 
       WHERE t.col1 = col1) 
+0

工程很好,谢谢你的萌芽! –