mysql插入选择多行

huwehgph  于 2021-06-23  发布在  Mysql
关注(0)|答案(1)|浏览(299)

我一直在搜索mysql文档、google和stackoverflow,但是找不到适合我需要的解决方案。
我有两个表:contract:contract\u id,contract\u client\u id,contract\u property\u id,contract\u tenant\u id,contract\u startdate,contract\u enddate,contract\u price
分类帐:分类帐id、分类帐事务处理日期、分类帐期间、分类帐属性id、分类帐租户id、分类帐值
我想用合同表中的一些列填充分类帐,并使用以下语句:

INSERT INTO ledger (ledger_trans_date, ledger_period, ledger_property_id, 
ledger_tenant_id, ledger_value)
VALUES ('01-08-2018', '01-08-2018', (SELECT contract_property_id, 
contract_tenant_id, contract_price FROM contract));

但是我得到了以下错误:错误代码:1136。列计数与第1行的值计数不匹配。
我也试过这个:

INSERT INTO ledger (ledger_trans_date, ledger_period, ledger_property_id, 
ledger_tenant_id, ledger_value)
VALUES ('01-08-2018', '01-08-2018', 
(SELECT contract_property_id FROM contract),
(SELECT contract_tenant_id FROM contract),
(SELECT contract_price FROM contract));

但是我得到了以下错误:错误代码:1242。子查询返回多于1行。
我希望有人能帮我,告诉我哪里出了问题。。。如果您需要更多的信息,请随时询问。
提前多谢了。

2ic8powd

2ic8powd1#

这样做:

INSERT INTO ledger (ledger_trans_date, ledger_period, ledger_property_id, 
ledger_tenant_id, ledger_value)
SELECT '2018-08-01', '2018-08-01', contract_property_id, 
contract_tenant_id, contract_price FROM contract;

相关问题