0

テーブル A に行を挿入したいのですが、テーブル B に別の行が存在する場合に限ります。例えばこんなもの...

IF EXISTS (SELECT * FROM B WHERE id=1)
    INSERT INTO A
        (id, value1, value2)
        VALUES (1, 'foo', 'bar')

しかし、それはうまくいきません。どうする?

4

2 に答える 2

3
INSERT INTO A (value1, value2, value3)
    SELECT 'foo', 'bar', 'foo' FROM B WHERE ID = 1

ここでの潜在的な問題の 1 つは、条件が複数回満たされた場合、同じ数の行が挿入されるため、それに合わせてクエリを調整しますが、選択の条件が満たされた場合にのみ挿入されます。

于 2010-07-22T16:48:45.410 に答える
0

このMySQLマニュアルの一部を見てください。SELECTの例が示されていますが、INSERTも同様の方法で機能するのでしょうか?

于 2010-07-22T16:45:05.143 に答える