子查詢在DELETE 中唯一可以應(yīng)用的位置就是WHERE 子句,使用子查詢可以完成復(fù)雜的數(shù)據(jù)刪除控制迫摔。其使用方式與SELECT 語句中的子查詢基本相同沐扳,而且也可以使用相關(guān)子查詢等高級的特性。
如:將所有同類書本書超過3 本的圖書刪除:
DELETE FROM T_Book b1
WHERE
(
SELECT COUNT(*) FROM T_Book b2
WHERE b1. FCategoryId=b2. FCategoryId
)>3
上面的SQL 語句使用相關(guān)子查詢來查詢所有與待更新的書籍屬于同類別的書籍的總數(shù)句占,如果總數(shù)大于3則將當(dāng)前書籍刪除沪摄。
執(zhí)行完畢查看T_Book表中的內(nèi)容:
FID FNAME FYEARPUBLISHED FCATEGORYID
1 About J2EE 2008 4
2 Learning Hibernate 2008 4
3 Two Cites 2008 1
4 Jane Eyre 2008 1
5 Oliver Twist 2008 1
14 How To Singing 2008 5
15 DaoDeJing 2008 6
16 Obedience toAuthority 2008 6