Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 使用多个Select和Join语句向表中插入多个数据_Sql_Postgresql_Sql Insert - Fatal编程技术网

Sql 使用多个Select和Join语句向表中插入多个数据

Sql 使用多个Select和Join语句向表中插入多个数据,sql,postgresql,sql-insert,Sql,Postgresql,Sql Insert,这是我上一个问题的后续问题 我想将数据插入表中,其中三列由select join查询填充。这是我的sql语句:: INSERT INTO books ( gid, type, membernumber, changedate, order, user, task) VALUES( '2b4493e8-cae8-4624-8177-fcc96553c5be', 2, (SELECT member FROM mem m JOIN group g ON m

这是我上一个问题的后续问题 我想将数据插入表中,其中三列由select join查询填充。这是我的sql语句::

INSERT INTO books ( gid, type, membernumber,  changedate, order, user, task)
  VALUES( '2b4493e8-cae8-4624-8177-fcc96553c5be',
          2,
          (SELECT member FROM mem m JOIN group g ON m.uid = g.sgroup),
          TIMESTAMP '2017-01-03 00:00:00.000',
          (SELECT order FROM orders o JOIN items i ON o.id = i.id),
          'mark',
          (SELECT task FROM tasks t JOIN lists l ON t.id = l.id),
        );

我想要实现的是,对于每个insert,membernumber、order和task将从mem、order和tasks表中获取,并基于它与各自的连接表的连接

标记您正在使用的特定数据库表
成员
订单
任务
之间的关系如何?如果您可以构建一个从这些表返回所需行的查询,那么您可以轻松地将其用作insert语句的源(而不是
values
子句)@a\u这只是一个示例。这种关系并不重要。我只需要正确的语法。关系很重要。只有当您能够创建一个返回要插入的信息的查询时,才能正确地执行此操作。如图所示,您的查询毫无意义。您正在插入一行,但正在从那些“相关”表中检索多行,并且您正在尝试将多行的列值放入一行的一列中。@a\u horse\u带有\u no\u名称,如我所说,上面的代码只是一个示例。在真实的代码中存在关系。假设上述代码中存在关系,正确的语法是什么?我正在寻找正确的语法