Во-первых, оператор values
не требуется.
Во-вторых, у вас есть ссылка на таблицу record
, которой не существует.
Я подозреваю, что вы не хотите дубликатов на s_id/s_date
(хотя это предположение). Вы должны начать с уникального индекса / ограничения на то, что вы хотите. Итак, начнем с этого (если его не существует):
create index unq_record1_s_id_s_date on record1(s_id, s_date);
Тогда я бы порекомендовал on duplicate key update
, а не insert ignore
. Это позволяет оператору фиксировать другие типы ошибок:
insert into record1 (s_id, s_date, s_in_time, s_out_time, s_p)
select sa.s_id, sa.s_date, sa.s_in_time, sa.s_out_time, sa.s_p
from staff_attendance sa
on duplicate key update s_id = values(s_id);