我遇到了mysql查询的问题。我需要将数据从一个表复制到另一个表。我正在使用的查询是:
mysql> insert into voucher (code, amount, expire_at, state, driver_id, asset_account_id, created_at, updated_at, creator_id, agent, voucher_batch_id, image, city_id, country_id, serial_number, updater_id, redeemed_at) select (code, amount, expire_at, state, driver_id, asset_account_id, created_at, updated_at, creator_id, agent, voucher_batch_id, image, city_id, country_id, serial_number, updater_id, redeemed_at) from voucher_log ;
但是,执行此操作时出现以下错误:
ERROR 1241(21000):操作数应包含1列
答案 0 :(得分:3)
insert into voucher
(code, amount, expire_at, state, driver_id, asset_account_id, created_at, updated_at, creator_id, agent, voucher_batch_id, image, city_id, country_id, serial_number, updater_id, redeemed_at)
select
(code, amount, expire_at, state, driver_id, asset_account_id, created_at, updated_at, creator_id, agent, voucher_batch_id, image, city_id, country_id, serial_number, updater_id, redeemed_at)
from voucher_log ;
您的查询应该是
insert into
voucher (code, amount, expire_at, state, driver_id, asset_account_id, created_at, updated_at, creator_id, agent, voucher_batch_id, image, city_id, country_id, serial_number, updater_id, redeemed_at)
select
code, amount, expire_at, state, driver_id, asset_account_id, created_at, updated_at, creator_id, agent, voucher_batch_id, image, city_id, country_id, serial_number, updater_id, redeemed_at
from voucher_log ;
您将()
放入选择查询中。那部分是错的。