delete t2 where column2 in (select column2 from t1)试试

解决方案 »

  1.   

    一个表:  
    我想删除对应表数据!!  
    t1:  
    column1      column2  
    1                        a      
    2                        b  
    3                        c  
    4                        d  
    5                        e  
     
    t2:  
    column1      column2        column3  
    1                        a                    342  
    2                        b                        2  
    3                        c                        523  
    4                        d                        52  
    5                        e                        f  
    6                        f                        gr4  
    7                        g                        435  
    8                        h                        43  
    9                        i                        45  
     
    想用一句SQL将t2中对应column1,2  在t1  的column1,2  相等的记录删除!  
    怎样写???
      

  2.   

    不行!!因为column2值不唯一!
    对应两个字段才行。
      

  3.   

    对应两个字段才行。是什么意思??!
    因为column2值不唯一又有什么影响?!
      

  4.   

    delete from  t2 where (cast(t2.column1 as varchar(20)) + t2.column2) in (select (cast(t1.column1 as varchar(20)) + t1.column2) from t1)
      

  5.   

    delete from  t2 where t2.column1 = t1.column1 and t2.column2 = t1.column2这样不行吗?
      

  6.   

    呵呵!!是不合语法,立刻悔改。DELETE FROM t2
    WHERE column1 = 
    (select column1 from t1) and column2 = 
    (select column2 from t1)
    Go
      

  7.   

    senzz(森):hehe还是不合语法,你混淆了一些概念,可能你还没清楚,只是当然
      

  8.   

    senzz(森):只是想当然,单独的某行某列的值怎么能和一个集合相比较呢??
      

  9.   

    delete t2 from t1,t2 where t2.column1 = t1.column1 and t2.column2 = t1.column2
    这样行不?