使用 WHERE NOT EXISTS 的堆叠 WHERE 语句中的 SQL 错误

问题描述 投票:0回答:1

我的 SQL 语句中重复出现错误,但我不知道如何修复它。

ERROR:  syntax error at or near "WHERE"
也不是很有帮助。

这是有问题的代码片段:

INSERT INTO example.table (first, second, third, fourth, fifth) 
(SELECT first,second,third,fourth,'constant' 
 FROM example.table 
 WHERE some_id=42)
 WHERE NOT EXISTS
 (SELECT 1 
  FROM example.table 
  WHERE (first,third,status)=(SELECT first,third,'request'     FROM example.table 
  WHERE some_id=42));

一切都按预期工作,直到“WHERE NOT EXISTS”,但是如果我仅用值替换第二行而不是从表中搜索它们,一切也会正常。 我该如何修复此代码?

非常感谢!

sql postgresql where-clause
1个回答
0
投票

也许

INSERT INTO example.table (first, second, third, fourth, fifth) 
SELECT first,second,third,fourth,'constant' 
FROM example.table 
WHERE some_id=42
 and NOT EXISTS
   (SELECT 1 FROM example.table 
    WHERE (first,third,status)=
       (SELECT first,third,'request' FROM example.table WHERE some_id=42));
© www.soinside.com 2019 - 2024. All rights reserved.