是否有纯粹的SQL方法来执行此操作?
我有一个表apples
:id, price
,另一个apple_info
:apple_id, color
对于apples
中的每一行,我想在apple_info
中添加相应的行(如果它尚不存在)。找不到任何这方面的例子。
答案 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_id
和color
的固定值。我想这就是你想要的。
答案 1 :(得分:1)
INSERT IGNORE INTO apple_info(apple_id, color)
SELECT id, 'green' FROM apples