我有这个查询要从 temptab
mytab
中不存在的数据
INSERT INTO mytab SELECT * FROM temptab
WHERE NOT EXIST (SELECT * FROM mytab WHERE
(mytab .col1= temptab .col1 AND mytab .col2=temptab .col2))
我想知道是否有任何其他方式来编写此查询的条件部分,即最后一条语句。
上面的查询工作得很好,但在匹配更多列时变得太长了。所以我在想是否有类似的格式
mytab.(col1,col2,...,coln)=temptab.(col1,col2,...,coln)
我需要匹配如此多的列,因为这些列的组合用作我的表的主键。类似地,存在更多的表。
任何意见表示赞赏。
附言:请不要犹豫改进查询。
最佳答案
INSERT INTO
mytab
SELECT
*
FROM
temptab
WHERE
(temptab) NOT IN (
SELECT (mytab) FROM mytab
);
关于PostgreSQL 匹配表之间的多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8700318/