PostgreSQL 匹配表之间的多个值
我有这个查询来插入 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)
我需要匹配如此多的列,因为这些列的组合作为我的表的主键。类似地,存在更多的表。
任何意见表示赞赏。
PS:毫不犹豫地改进查询。
I have this query to insert data which is not present inside mytab
from temptab
INSERT INTO mytab SELECT * FROM temptab
WHERE NOT EXIST (SELECT * FROM mytab WHERE
(mytab .col1= temptab .col1 AND mytab .col2=temptab .col2))
I want to know if there is any other way of writing this query's condition part i.e. the last statement.
The above query works absolutely fine but becomes too lengthy when matching many more columns. So I was thinking if there is any kind of format some what like
mytab.(col1,col2,...,coln)=temptab.(col1,col2,...,coln)
I need to match so many columns since combination of these works as primary key for my table.Similary there exist many more tables.
any views appreciated.
P.S. : don't hesitate to improve the query.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你可以这样写:
you can write it like this: