2011-08-16 6 views
3

これを行うための純粋なSQL方法はありますか?NULLの場合はSQLを挿入します

私はテーブル​​持っている:id, price、および他のapple_info:​​の行ごとにapple_id, color

を、私はそれがまだ存在しない場合、apple_infoに対応する行を追加します。この例は見つかりません。

+0

、または全体のリンゴのテーブルに対して事後に? apple_infoへの挿入にどのように色の値が指定されていますか? – hatchet

+0

事後(私が選択した設定値になります) – ash

答えて

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_idcolorのための固定値でapple_infoに行を挿入します。私はこれがあなたが望むものだと思います。

+0

ありがとう、これは私が心に留めていたものです。 'LEFT OUTER JOIN'は私を捨てましたが、MySQLのLEFT JOINと同じです。http://stackoverflow.com/questions/2809594/basic-question-left-outer-join-vs-left-join – ash

1

使用INSERT IGNORE

INSERT IGNORE INTO apple_info(apple_id, color) 
    SELECT id, 'green' FROM apples 
各りんごが挿入されるよう
関連する問題