【问题标题】:postgres how to insert values with 2 selectspostgres如何使用2个选择插入值
【发布时间】:2021-06-29 10:12:05
【问题描述】:

我正在尝试对 Postgres 进行查询,但它不起作用。我想用 2 选择创建一个插入查询:

例子:

INSERT INTO table1 (id_1, id_2)
SELECT id from table_2 where code='01',
SELECT id from table_2 where code='02';

我没有找到合适的语法。

【问题讨论】:

    标签: postgresql sql-insert


    【解决方案1】:

    我相信以下查询将适用于您的用例

    INSERT INTO stats(totalProduct, totalCustomer, totalOrder)
    VALUES(
        (SELECT COUNT(*) FROM products),
        (SELECT COUNT(*) FROM customers),
        (SELECT COUNT(*) FROM orders)
    );
    

    您可以相应地更改查询

    【讨论】:

      【解决方案2】:

      您可以再添加一个SELECT 来实现这一点

      INSERT INTO table_1 (id_1, id_2)
      SELECT 
          (SELECT id FROM table_2 WHERE code = '01') AS Id_1,
          (SELECT id FROM table_2 WHERE code = '02') AS Id_2;
      

      或者你可以试试CASE expression:

      INSERT INTO table1 (id_1, id_2)
      SELECT MAX(CASE WHEN code = '01' THEN id ELSE 0 END) AS Id_1,
             MAX(CASE WHEN code = '02' THEN id ELSE 0 END) AS Id_2
      FROM table_2
      

      请参考working fiddle on db<>fiddle

      【讨论】:

        猜你喜欢
        • 2020-06-20
        • 1970-01-01
        • 2022-12-17
        • 2021-10-16
        • 1970-01-01
        • 2014-09-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多