我有这个查询来插入来自mytab
temptab
内不存在的数据
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)
我需要匹配这么多列,因为这些列的组合可以作为我的表的主键。类似地,还有更多的表。
任何观点赞赏。
P.S。:不要犹豫,改进查询。
答案 0 :(得分:3)
INSERT INTO
mytab
SELECT
*
FROM
temptab
WHERE
(temptab) NOT IN (
SELECT (mytab) FROM mytab
);
答案 1 :(得分:2)
你可以这样写:
(mytab.col1, mytab.col2) = (temptab.col1, temptab.col2)