我有一个产品数据库:
其中有两列:
产品编号    产品名称  产品图片
1            aa         xxx1.jpg
2          bb         xxx2.jpg
3           cc        xxx3.jpg
5           dd         xxx4.jpg
6           ee        xxx5.jpg
9           ff         xxx6.jpb
.....
.....
.....
.....由于经常会有些产品是要淘汰的,要在产品库里删除的一个淘汰表.
例如要删除的
产品编号    产品名称  
2          bb         
5           dd         
6           ee        
9           ff         
用sql语句怎么写一段语句,一次性列出要淘汰的图片,并删除记录呢?

解决方案 »

  1.   

    select * from table1 where exists (select 1 from table2 where 产品编号=table1.产品编号 and 产品名称 =table1.产品名称)delete from table1 where exists (select 1 from table2 where 产品编号=table1.产品编号 and 产品名称 =table1.产品名称)
      

  2.   

    select * from 表1 a where exists(select 1 from 表2
    where 产品编号=a.产品编号 and 产品名称=a.产品名称)
      

  3.   

    delete from tb where 产品编号 in (2,5,6,9)
      

  4.   

    对了,那个不是表来的,是几十条的淘汰记录赛 要导入数据库里很麻烦,想把淘汰的所有"产品编号"一次性写到SQL语里面,怎么写
      

  5.   

    或者将这些产品编号输入另外一个表。
    delete from tb1 where 产品编号 in (select 产品编号 from tb2)
      

  6.   

    --把淘汰的所有"产品编号"一次性写到SQL语里面,怎么写delete from table1 where 产品编号 in (2,5,6,9)
      

  7.   

    create table tb(产品编号 int,产品名称 varchar(10), 产品图片 varchar(20))
    insert into tb values(1, 'aa', 'xxx1.jpg') 
    insert into tb values(2, 'bb', 'xxx2.jpg') 
    insert into tb values(3, 'cc', 'xxx3.jpg') 
    insert into tb values(5, 'dd', 'xxx4.jpg') 
    insert into tb values(6, 'ee', 'xxx5.jpg') 
    insert into tb values(9, 'ff', 'xxx6.jpb')
    godelete from tb where 产品编号 in (2,5,6,9)
    select * from tbdrop table tb/*产品编号        产品名称       产品图片                 
    ----------- ---------- -------------------- 
    1           aa         xxx1.jpg
    3           cc         xxx3.jpg(所影响的行数为 2 行)
    */
    create table tb1(产品编号 int,产品名称 varchar(10), 产品图片 varchar(20))
    insert into tb1 values(1, 'aa', 'xxx1.jpg') 
    insert into tb1 values(2, 'bb', 'xxx2.jpg') 
    insert into tb1 values(3, 'cc', 'xxx3.jpg') 
    insert into tb1 values(5, 'dd', 'xxx4.jpg') 
    insert into tb1 values(6, 'ee', 'xxx5.jpg') 
    insert into tb1 values(9, 'ff', 'xxx6.jpb')
    create table tb2(产品编号 int)
    insert into tb2 values(2)
    insert into tb2 values(5)
    insert into tb2 values(6)
    insert into tb2 values(9)
    godelete from tb1 where 产品编号 in (select 产品编号 from tb2)
    select * from tb1drop table tb1,tb2/*产品编号        产品名称       产品图片                 
    ----------- ---------- -------------------- 
    1           aa         xxx1.jpg
    3           cc         xxx3.jpg(所影响的行数为 2 行)
    */