【发布时间】:2023-03-12 21:55:01
【问题描述】:
我想在表中插入一些值,然后剩余的值应该来自 Postgres 中的一个 select 子查询,我被卡住了,我还需要在其他地方重用代码
请帮帮我。
我遇到了subquery must return only one column 的错误。我要返回email、name、address三列
INSERT INTO
books
VALUES
( 1, 2, 3, (SELECT email, name, address FROM users WHERE userID=1)) RETURNING *;
【问题讨论】:
-
您有多个用户 ID = 1 的用户,也许您需要清理数据库。
-
我不这么认为。 user_id 是主键
-
你为什么不检查?编写该查询的另一种方式是
INSERT INTO books SELECT 1, 2, 3, email, name, address FROM users WHERE userID = 1,这可能值得一试 -
但是值 1、2、3 不在用户表中,会这样工作吗?
-
在我看来,来自 PostgreSql 的错误消息在这里有点误导。
标签: sql postgresql