有没有纯粹的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