delete B from B ,(SELECT * FROM A WHERE A.ID=1) AS C WHERE C.ID=B.AID

解决方案 »

  1.   

    delete from b where aid=1
      

  2.   

    declare @A table (ID int, Name varchar(10))
    insert @A select 1,      'DEMO'
    union all select 2,      'DEMO2'declare @B table(ID int, AID int, PRICE int)
    insert @B select 1,         1,      30
    union all select 2,         1,      32
    union all select 3,         1,      26
    union all select 4,         1,      26
    union all select 5,         2,      26delete b from @b b where exists(select 1 from @a where id=b.aid and id=1)--这样效率高一点
    select * from @b(所影响的行数为 2 行)
    (所影响的行数为 5 行)
    (所影响的行数为 4 行)ID          AID         PRICE       
    ----------- ----------- ----------- 
    5           2           26(所影响的行数为 1 行)
      

  3.   

    delete deltable from B as deltable right join A on A.ID=deltable.AID
    where A.ID=1