Sim, você pode fazer isso usando
insert . . . select
. Isso parece corresponder à intenção da sua consulta original:INSERT INTO notification_table (receiver_id, type, content, time)
SELECT (SELECT id FROM user_table WHERE username = 'test' LIMIT 1),
'system_broadcast',
content, time
FROM broadcast_table;
Observe que isso inserirá uma linha para cada linha em
broadcast_table
. Você pode querer um where
cláusula ou limit
para obter apenas linhas específicas.