SQL插入,如果为NULL

时间:2011-08-16 23:05:20

标签: mysql

是否有纯粹的SQL方法来执行此操作?

我有一个表applesid, price,另一个apple_infoapple_id, color

对于apples中的每一行,我想在apple_info中添加相应的行(如果它尚不存在)。找不到任何这方面的例子。

2 个答案:

答案 0 :(得分:3)

试试这个:

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_idcolor的固定值。我想这就是你想要的。

答案 1 :(得分:1)

使用INSERT IGNORE

INSERT IGNORE INTO apple_info(apple_id, color)
    SELECT id, 'green' FROM apples