有沒有純粹的SQL方法來做到這一點?SQL Insert if NULL
我有一個表:id, price
,另有apple_info
:apple_id, color
對於每一行,我想添加一個相應的行apple_info
,如果它不存在。找不到任何這樣的例子。
有沒有純粹的SQL方法來做到這一點?SQL Insert if NULL
我有一個表:id, price
,另有apple_info
:apple_id, color
對於每一行,我想添加一個相應的行apple_info
,如果它不存在。找不到任何這樣的例子。
試試這個:
insert into apple_info (apple_id, color)
select a.id, 'some_color'
from apples a
left outer join apple_info ai
on (a.id = ai.apple_id)
where ai.apple_id is null;
你會插入一行上apple_info
與不存在apple_id
和color
一個固定值。我想這是你想要的。
謝謝,這正是我想到的。 'LEFT OUTER JOIN'丟掉了我,但事實證明它和MySQL中的'LEFT JOIN'一樣:http://stackoverflow.com/questions/2809594/basic-question-left-outer-join-vs-left-join – ash
INSERT IGNORE INTO apple_info(apple_id, color)
SELECT id, 'green' FROM apples
爲每個蘋果插入,或對整個蘋果表的事實之後?如何提供插入到apple_info的顏色值? – hatchet
事實後(這將是我選擇的一些設定值) – ash