在一个查询SQL中删除两个表中的记录

时间:2016-11-22 05:39:01

标签: mysql sql vb.net

我有两张桌子

EMPGROUP_TBL
SEQID | MASTERID | BUSINESS_UNIT | DIVISION | SUB_DIVISION | CLASSIFICATION | SUB_CLASSIFICATION

EMP_MASTERTBL
MASTERID | EMPNO | LASTNAME | FIRSTNAME | JOBTITLE | LOCATION |

在我的ASP.NET JOBTITLE表中,BUSINESS_UNIT,DIVISION,SUB_DIVISION,CLASSIFICATION和SUB_CLASSIFICATION在一起。

因此,当我必须删除girdview中的记录时,我只需要删除EMP_MASTERTBL中的JOBTITLE和EMPGROUP_TBL中的所有记录。

这是我的代码

DELETE em.JOBTITLE, eg.BUSINESS_UNIT, eg.DIVISION, eg.SUB_DIVISION, eg.CLASIFFICATION, eg.SUB_CLASSIFICATION
FROM EMP_MASTERTBL AS em, EMPGROUP_TBL AS eg
WHERE em.MASTERID = eg.MASTERID AND eg.MASTERID = '76196'

每次运行或执行我的代码时,都会出现Incorrect syntax near ','.

错误

我为我的代码尝试了不同的方法,但它仍然是相同的。

我也试过这个

DELETE JOBTITLE FROM EMP_MASTERTBL WHERE MASTERID = '76196';
DELETE FROM EMPGROUP_TBL WHERE MASTERID = '76196'

但我收到Invalid object name 'JOBTITLE'.错误。

可能是什么问题?感谢。

1 个答案:

答案 0 :(得分:2)

当您从某个表中删除时,您没有从特定字段中删除,是否要删除整行。这就是为什么当你写删除语句时,你不包括字段名称。

也可以在两个表之间建立外键关系,这样当您从EMP_MASTERTBL中删除它时,它也会删除EMPGROUP_TB中的子记录。 http://www.mysqltutorial.org/mysql-on-delete-cascade/

修改

仔细阅读更新后的问题,我认为你真正想做的是:

UPDATE EMP_MASTERTBL
   SET JOBTITLE = NULL
   WHERE MASTERID = '76196';

DELETE FROM EMPGROUP_TB
   WHERE MASTERID = '76196';

也就是说,您将JOBTITLE设置为NULL,并删除EMPGROUP_TB中的所有相关记录。