【问题标题】:error: subquery must return only one column during insert错误:子查询在插入期间必须只返回一列
【发布时间】:2020-07-15 22:45:30
【问题描述】:

我有下一个代码:

INSERT INTO some_table (id, value1, value2, value3)
      VALUES (
        (SELECT id FROM user_table WHERE some_column = 'data'), 
        (SELECT value1, value2 FROM event_table WHERE type = 'some_type'),
        value3
      )

我收到下一个错误:subquery must return only one column 此错误与第二个“选择”有关,但我不明白为什么。我应该返回两个值,没关系。

【问题讨论】:

    标签: sql postgresql


    【解决方案1】:

    使用insert . . . select`:

    INSERT INTO some_table (id, value1, value2, value3)
        SELECT ut.id, et.value1, et.value2, <value3>
        FROM user_table ut JOIN
             event_table et
             ON ut.some_column = 'data' AND et.type = 'some_type';
    

    注意事项:

    • 尚不清楚value3 的来源。我认为它是某种常数。
    • 如果任一表中的条件不匹配,此版本将不会返回任何行。我认为这是一项功能,而不是错误。

    【讨论】:

      猜你喜欢
      • 2013-11-08
      • 2019-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-01
      • 1970-01-01
      相关资源
      最近更新 更多