2013-03-06 120 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