DELETE  tb_sensitive_cust,tb_sensitive_audit FROM tb_sensitive_cust,tb_sensitive_audit where tb_sensitive_cust.sencustid=? AND tb_sensitive_audit.sencustid=?
我现在的问题是这样的 如果tb_sensitive_audit.sencustid 里面没有匹配的值 会导致tb_sensitive_cust 对应的匹配的那一条记录也不能够被删除
请问怎么处理 我想只要一条数据就删掉 两个表的数据 无论tb_sensitive_audit  这张表有没有匹配的数据那位大侠告诉我?

解决方案 »

  1.   


       建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
       参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
       
       1. 你的 create table xxx .. 语句
       2. 你的 insert into xxx ... 语句
       3. 结果是什么样,(并给以简单的算法描述)
       4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
       
       这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。   
      

  2.   

    drop table if exists tb_sensitive_cust;/*==============================================================*/
    /* Table: tb_sensitive_cust                                     */
    /*==============================================================*/
    create table tb_sensitive_cust
    (
       sencustid            char(20) not null,
       sencustname          char(20),
       sencustno            char(11),
       sencust_ID           char(20),
       auditstate           varchar(20) comment '0:通过
                1:不通过',
       sessionid            varchar(20),
       optsn                varchar(20),
       optuserid            varchar(20),
       optdate              datetime,
       re               varchar(512),
       primary key (sencustid)
    );
    drop table if exists tb_sensitive_audit;/*==============================================================*/
    /* Table: tb_sensitive_audit                                    */
    /*==============================================================*/
    create table tb_sensitive_audit
    (
       sencustid            char(20) not null,
       audit                char(20),
       auditresult          varchar(20),
       auditorg             char(20),
       auditer              varchar(20),
       audittime            varchar(20),
       sessionid            varchar(20),
       optsn                varchar(20),
       optuserid            varchar(20),
       optdate              datetime,
       re               varchar(512)
    );
     mysql 5.0String sql="DELETE  tb_sensitive_cust,tb_sensitive_audit FROM tb_sensitive_cust,tb_sensitive_audit where tb_sensitive_cust.sencustid=? AND tb_sensitive_audit.sencustid=?";
    String sencustid=sensitive.getSencustid();
    getSimpleJdbcTemplate().update(sql.toString(),sencustid,sencustid);这个是后台的代码 这条sql语句如果在第二个表没有匹配数据的时候是不会报错的 正常执行 但是实际数据是删不掉的 所以想问是不是要拆开成两条来写?