十年

  :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

UPDATE、DELETE 與 INSERT 陳述式中的子查詢

    很多時候,你原來很熟悉的事物會被一下子遺忘掉,任你怎麼想都想不是很真切,這不,今天想在SQL更新中使用子查詢,卻一下子忘了語法,不得已又查了一下幫助,摘錄如下:

可以將子查詢 (Subquery) 套疊 (Nested) 於 UPDATE、DELETE 與 INSERT 陳述式中,以及位於 SELECT 陳述式之中。

下列查詢可將 New Moon Books 出版的所有書籍價格加倍。下列查詢將會更新 titles 資料表;它的子查詢會參考 publishers 資料表。

UPDATE titles
SET price = price * 2
WHERE pub_id IN
   (SELECT pub_id
   FROM publishers
   WHERE pub_name = 'New Moon Books')

下列為使用聯結 (Join) 的相等 UPDATE 陳述式:

UPDATE titles
SET price = price * 2
FROM titles INNER JOIN publishers ON titles.pub_id = publishers.pub_id
   AND pub_name = 'New Moon Books'

您可使用此巢狀查詢移除商業書籍的所有銷售記錄:

DELETE sales
WHERE title_id IN
   (SELECT title_id
   FROM titles
   WHERE type = 'business')

下列為使用聯結的相等 DELETE 陳述式:

DELETE sales
FROM sales INNER JOIN titles ON sales.title_id = titles.title_id
   AND type = 'business'
posted on 2005-01-11 09:55  留不住的时光  阅读(600)  评论(0)    收藏  举报