PostgreSQL多个SELECT的INSERT INTO

3

我希望能够用一条SQL语句实现以下内容:

我有一个表,格式如下:{ida|idb|count|direct},
我想从另一个表中取出id a和id b的值,并插入到这个表中,同时将count和direct设定为给定的值。我尝试了以下语句:

不起作用:

INSERT INTO my_tbl (ida, idb, count, direct)  
SELECT id FROM other_tbl WHERE word ='test'  
UNION  
SELECT id FROM other_tbl WHERE word ='tost' 23, 5;

感谢您的提前帮助。

在pssql中,word ='tost' 23, 5是合法的语法吗? - flyingfox
1
您的插入列必须与选择列匹配。在此示例中,您正在尝试使用选择一个列来插入四个列。 - Kadir Çetintaş
可能不行,我尝试通过尝试和错误来使这个查询工作,这就是我决定寻求帮助的地方。 - Matthias Schroer
@MatthiasSchroer . . . 提供示例数据和期望结果通常有助于传达含义。 - Gordon Linoff
@KadirÇetintaş 我在从另一个表中获取不同条件下的值时遇到了一些麻烦,有没有办法做到这一点(并将它们与两个给定的值组合起来)? - Matthias Schroer
1个回答

3

这是您想要的吗?

INSERT INTO my_tbl (ida, idb, count, direct) 
    SELECT o1.id, o2.id, 23, 5
    FROM other_tbl o1 JOIN
         other_tbl o2
         ON o1.word = 'test' AND o2.word = 'tost';

是的,这正是我正在寻找的,谢谢! - Matthias Schroer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接