Ik zal het proberen, maar houd er rekening mee dat ik uit een Microsoft SQL-achtergrond kom en ik niet bekend ben met de exacte structuur van uw tabellen, dus een deel van de SQL is waarschijnlijk een beetje slordig.
IF (SELECT COUNT(*) FROM beta WHERE name = 'John' > 0)
UPDATE alfa SET c1=(SELECT id FROM beta WHERE name = 'John')
ELSE
BEGIN
INSERT INTO beta (name) VALUES ('John')
INSERT INTO alfa (c1) VALUES (LAST_INSERT_ID())
END
Ik hoop dat je hier wat aan hebt.