Tak, możesz to zrobić za pomocą insert . . . select
. Wydaje się, że jest to zgodne z intencją pierwotnego zapytania:
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;
Zwróć uwagę, że wstawi to jeden wiersz na każdy wiersz w broadcast_table
. Możesz chcieć where
klauzula lub limit
aby uzyskać tylko określone wiersze.