我想这样的,我有两个表,一个是disturb,一个是user,两个表都有一个name字段,我想将user里的name字段加到disturb里去,如果和disturb的name记录相同就不增加.
这样行不行?aDOCommand1.CommandText:='insert into disturb (name,contents) values (user.name,'+''''+'公司内部邮件'+''''+') where name not in user.name';为什么老是说sql语法出错,少了个分号(;)???

解决方案 »

  1.   

    insert into disturb (name,contents) values (select user.name,'+''''+'公司内部邮件'+''' from user where user.name not in (select distinct name from disturb))
      

  2.   

    语法错啦,insert语句不能有where子句,你只能先把name取出来,insert之前判断有没有相同的。
    或者你不判断也可以,前后加上try ... except end 把错误屏蔽掉。
    try
      aDOCommand1.CommandText:='insert into disturb (name,contents) values (user.name,'+''''+'公司内部邮件'+''')';
      aDOCommand1.Execute;
    except
    end;
      

  3.   

    insert into disturb (name,contents) 
    select user.Name,contents='公司内部邮件'
    from user,disturb
    where user.name<>disturb.name