SELECT r.id, r.member_id, r.title, r.type, r.amount, r.category, r.memo, r.wallet_id, w.name AS wallet_name, r.to_wallet_id, tw.name AS to_wallet_name, r.frequency, r.day_of_month, r.day_of_week, r.month_of_year, r.start_date, r.end_date, r.last_run_date, r.active FROM recurring r LEFT JOIN wallet w ON w.id = r.wallet_id LEFT JOIN wallet tw ON tw.id = r.to_wallet_id INSERT INTO recurring (member_id, title, type, amount, category, memo, wallet_id, to_wallet_id, frequency, day_of_month, day_of_week, month_of_year, start_date, end_date, last_run_date, active, created_at, updated_at) VALUES (#{memberId}, #{title}, #{type}, #{amount}, #{category}, #{memo}, #{walletId}, #{toWalletId}, #{frequency}, #{dayOfMonth}, #{dayOfWeek}, #{monthOfYear}, #{startDate}, #{endDate}, #{lastRunDate}, #{active}, NOW(), NOW()) UPDATE recurring SET title = #{title}, type = #{type}, amount = #{amount}, category = #{category}, memo = #{memo}, wallet_id = #{walletId}, to_wallet_id = #{toWalletId}, frequency = #{frequency}, day_of_month = #{dayOfMonth}, day_of_week = #{dayOfWeek}, month_of_year = #{monthOfYear}, start_date = #{startDate}, end_date = #{endDate}, active = #{active} WHERE id = #{id} AND member_id = #{memberId} DELETE FROM recurring WHERE id = #{id} AND member_id = #{memberId} UPDATE recurring SET last_run_date = #{lastRunDate} WHERE id = #{id}