如果其他表中存在值,则mysql仅执行insert

时间:2014-11-17 18:22:50

标签: mysql sql-insert

有几个问题看起来很像下面的问题,但我找不到合适的答案。 我想在表b中进行插入,例如ID_b,ID_a,name,name2。 如果ID_a存在于表a

中,我只想进行插入

简单的问题,导致头痛。

1 个答案:

答案 0 :(得分:1)

您可以为此使用单个insert-select语句。

例如,假设[ID_b,ID_a,name,name2]的值为[1,100,'name','name2']:

INSERT INTO b (ID_b, ID_a, name, name2)
SELECT 1, ID_a, 'name', 'name2'
FROM   a
WHERE  ID_a = 100

如果存在ID_a = 100,则会插入新行。如果没有,则从表a中选择零行,因此,b中不会插入任何内容。