2013-03-06 34 views
1

如何修改此代碼,以便從兩個表中刪除記錄以獲取信息?刪除多個表的查詢

SELECT products_description.products_name, products.products_id 
FROM products INNER JOIN products_description ON products.products_id =    products_description.products_id 
WHERE (((products.products_ordered)=0) AND ((products.products_status)=0)); 

我很新來sql編碼,所以請原諒,如果這是一個愚蠢的問題。

+0

顯然我必須將SELECT更改爲DELETE,但它要求指定一個表。我如何指定兩者? – 2013-03-06 19:15:20

+0

你有沒有把關係放在表格之間。刪除級聯可能會完成這項工作,但您需要思考它對您的設計意味着什麼。看到http://office.microsoft.com/en-gb/access-help/delete-one-or-more-records-from-an-access-database-HA001173951.aspx – 2013-03-06 19:28:59

回答

1

你可以用關係和單個查詢來做到這一點。

  1. 設置基於公共領域​​
  2. 發生在框中勾選「實施參照完整性」
  3. 地方在「級聯刪除相關的框勾選productsproducts_description之間的關係記錄」
  4. 保存的關係

products那麼這個查詢將刪除行以及任何products_description行,其中包括​​的值與刪除的products行的值相匹配。

DELETE FROM products 
WHERE 
     products.products_ordered=0 
    AND products.products_status=0; 

如果你走這條路線,請確保你瞭解後果。作爲額外的保障措施,製作並測試您希望保留的數據的備份。 ;-)

+0

+1你進入更詳細的,然後我可以在這一點上。 :) – Taryn 2013-03-06 19:29:15

+0

它不允許我檢查任何選項 – 2013-03-06 19:41:05

+0

兩個表是否在同一個數據庫中......或者是指向不同數據庫中的表的鏈接?您只能在同一個數據庫中的表之間執行參照完整性。 – HansUp 2013-03-06 21:06:34