我有2个简单的表
两张桌子是一样的。 p_id ai值。
我想在table2中插入一行,但只有在table1中存在p_id时才**。这个有可能? (MySQL的)
INSERT INTO table1 (p_id, s_id)
SELECT * FROM (SELECT '100', '2') AS tmp
WHERE NOT EXISTS (SELECT p_id FROM table2 WHERE p_id = '100')
LIMIT 1
答案 0 :(得分:1)
您可以根据任何SELECT查询插入表中。例如:
INSERT INTO table2 (p_id, s_id)
SELECT p_id, 2 FROM table1 WHERE p_id = 100;
如果table1中有零行且指定了p_id值,则这是一个无操作。也就是说,它在表2中插入零行。如果table1中有1行具有该p_id值,则将其插入table2。
不需要LIMIT 1
,因为如果p_id是主键,则保证只有1或0行具有给定值。
答案 1 :(得分:0)
试试这个
Insert into table2 (p_id,s_id) Select p_id,'2' as s_id FROM table1 where p_id=100 LIMIT 1