2016-06-08 111 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

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