Sql 正在从两个表的select查询中删除记录。。。哪个表受到影响?

Sql 正在从两个表的select查询中删除记录。。。哪个表受到影响?,sql,ms-access,vba,Sql,Ms Access,Vba,我有两个连接关系的表 Tblempolymeedetails TblemployeeDocument到期 选择“强制引用完整性”时,表将作为一对多进行联接 我有一个查询,它将来自两个表[queryEmployees]的数据组合在一起。 我有一个表格可以在该查询中输入/更新/删除数据 我的问题只是从该查询中删除记录。删除记录时,它仅从一个表中删除[EmployeeDocumentExpirement]。我正在寻找一个场景,当从该查询中删除一条记录时,它将从两个表中删除 有什么想法吗。 我认为您的两

我有两个连接关系的表

  • Tblempolymeedetails
  • TblemployeeDocument到期
  • 选择“强制引用完整性”时,表将作为一对多进行联接

    我有一个查询,它将来自两个表[queryEmployees]的数据组合在一起。
    我有一个表格可以在该查询中输入/更新/删除数据

    我的问题只是从该查询中删除记录。删除记录时,它仅从一个表中删除[EmployeeDocumentExpirement]。我正在寻找一个场景,当从该查询中删除一条记录时,它将从两个表中删除

    有什么想法吗。

    我认为您的两个表需要具有相同的外键才能执行删除,但它将删除所有具有该EmpID的文档

    delete tblEmpDetails, tblEmpDocExp from tblEmpDetails inner join tblEmpDocExp where tblEmpDetails.EmpID = tblEmpDocExp.EmpID and tblEmpDetails.EmpID = '999';
    
    或者在下面的两个声明中

    delete from tblEmpDetails where tblEmpDetails.EmpID = '999'
    delete from tblEmpDocExp where tblEmpDocExp.EmpID = '999'
    

    希望这会有所帮助。

    我认为您的两个表需要具有相同的外键才能执行删除,但它将删除所有具有该EmpID的文档

    delete tblEmpDetails, tblEmpDocExp from tblEmpDetails inner join tblEmpDocExp where tblEmpDetails.EmpID = tblEmpDocExp.EmpID and tblEmpDetails.EmpID = '999';
    
    或者在下面的两个声明中

    delete from tblEmpDetails where tblEmpDetails.EmpID = '999'
    delete from tblEmpDocExp where tblEmpDocExp.EmpID = '999'
    

    希望这会有所帮助。

    如果您有一对多关系,并希望在删除“一”记录时删除所有相关记录,则可以配置关系属性:选择关系,双击它以显示其属性,然后选中“级联删除相关记录”

    启用此选项后,您只需从employee表中删除该记录,DB将删除与该员工相关的所有记录,而不会因引用错误而失败(请小心使用)


    如果您有一对多关系,并希望在删除“一”记录时删除所有相关记录,则可以配置关系属性:选择关系,双击它以显示其属性,然后选中“级联删除相关记录”

    启用此选项后,您只需从employee表中删除该记录,DB将删除与该员工相关的所有记录,而不会因引用错误而失败(请小心使用)


    也许我应该问:从select查询中删除表行是否正常/可以?如果您具有一对多引用完整性,为什么在删除“多”记录时要删除“一”记录?我可以理解,当您删除员工时,您希望删除所有文档,但我不明白您为什么要执行相反的操作。我确实希望从查询中删除员工(一条记录)。但是Access会删除多条记录并保留一条。换句话说,delete命令用于删除员工。似乎除了从表中删除外,我无法删除员工记录。从组合了一个表和多个表的查询中删除一条记录将删除多条记录并保留一条记录。是否可以将一对多关系更改为一对一?我现在明白了,您不能将关系更改为一对一,因为在这种情况下,每个员工只能拥有一份文档。无论如何,您不需要查询就可以做到这一点,您可以将关系配置为在删除“一”时自动删除“多”个记录,我会给出一个答案。也许我应该问:从选择查询中删除表行是否正常/可以?如果您具有一对多引用完整性,为什么要删除“一”删除“多个”记录时记录?我可以理解,当您删除员工时,您希望删除所有文档,但我不明白您为什么要执行相反的操作。我确实希望从查询中删除员工(一条记录)。但是Access会删除多条记录并保留一条。换句话说,delete命令用于删除员工。似乎除了从表中删除外,我无法删除员工记录。从组合了一个表和多个表的查询中删除一条记录将删除多条记录并保留一条记录。是否可以将一对多关系更改为一对一?我现在明白了,您不能将关系更改为一对一,因为在这种情况下,每个员工只能拥有一份文档。无论如何,你不需要查询就可以做到这一点,你可以将关系配置为在删除“一”时自动删除“多”条记录,我会给出答案。谢谢你的回复。我不是专家。我应该把代码放在哪里?我想Access中会有一个选项来实现这一点。谢谢您的回复。我不是专家。我应该把代码放在哪里?我想在Access中会有一个选项来实现它。