Sql 子查询,用于在查找表中插入数据(如果它不';不存在

Sql 子查询,用于在查找表中插入数据(如果它不';不存在,sql,database,subquery,derby,Sql,Database,Subquery,Derby,我想将两个表中的主键插入到查找表中。如果表中不存在从表返回的数据,如何仅插入该数据?也就是说,如果查询返回1,1,并且表中已经存在1,1,则不要插入。我的查询如下所示: INSERT INTO tblUserLookup(name,class) SELECT tblName.id,tblClass.id FROM tblName,tblClass WHERE name='bob' AND class='grade4'; 谢谢 您可以使用“不存在”检查表中是否已经存在数据 INSERT INTO

我想将两个表中的主键插入到查找表中。如果表中不存在从表返回的数据,如何仅插入该数据?也就是说,如果查询返回1,1,并且表中已经存在1,1,则不要插入。我的查询如下所示:

INSERT INTO tblUserLookup(name,class)
SELECT tblName.id,tblClass.id FROM tblName,tblClass
WHERE name='bob' AND class='grade4';

谢谢

您可以使用“不存在”检查表中是否已经存在数据

INSERT INTO tblUserLookup(name,class)
select idName, idClass 
from (SELECT tblName.id idName,tblClass.id idClass FROM tblName,tblClass
      WHERE name='bob' AND class='grade4') tmp
where not exists (select name from tblUserLookup tmp1
               where tmp1.name = tmp.idName and tmp1.class = tmp.idClass);

大多数数据库管理系统支持标准SQL的
合并到
,当不匹配时只需要
。。。