Mysql 在一个查询SQL中删除两个表中的记录
我有两张桌子Mysql 在一个查询SQL中删除两个表中的记录,mysql,sql,vb.net,Mysql,Sql,Vb.net,我有两张桌子 EMPGROUP_TBL SEQID | MASTERID | BUSINESS_UNIT | DIVISION | SUB_DIVISION | CLASSIFICATION | SUB_CLASSIFICATION 及 在ASP.NET JOBTITLE中的我的表格中,业务单元、部门、子部门、分类和子分类一起显示 因此,当我必须删除girdview中的记录时,我只需要删除EMP_MASTERTBL中的JOBTITLE和EMP Group_TBL中的所有记录 这是我的密码 DE
EMPGROUP_TBL
SEQID | MASTERID | BUSINESS_UNIT | DIVISION | SUB_DIVISION | CLASSIFICATION | SUB_CLASSIFICATION
及
在ASP.NET JOBTITLE中的我的表格中,业务单元、部门、子部门、分类和子分类一起显示
因此,当我必须删除girdview中的记录时,我只需要删除EMP_MASTERTBL中的JOBTITLE和EMP Group_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'
每次我运行或执行代码时,都会出现一个错误,即“,”附近的语法不正确。
我尝试了不同的方法来编写代码,但仍然是一样的
我也试过这个
DELETE JOBTITLE FROM EMP_MASTERTBL WHERE MASTERID = '76196';
DELETE FROM EMPGROUP_TBL WHERE MASTERID = '76196'
但是我得到了一个无效的对象名“JOBTITLE”。
错误
有什么问题吗?谢谢。从表中删除时,不是从特定字段中删除,而是删除整行。这就是为什么在编写delete语句时不包含字段名的原因 还可以在两个表之间设置外键关系,以便在从EMP_MASTERTBL中删除时,它也会删除EMP_TB中的子记录 编辑 仔细阅读你的最新问题后,我认为你真正想做的是:
UPDATE EMP_MASTERTBL
SET JOBTITLE = NULL
WHERE MASTERID = '76196';
DELETE FROM EMPGROUP_TB
WHERE MASTERID = '76196';
也就是说,您正在将
JOBTITLE
设置为NULL,并删除EMPGROUP_TB
中的所有相关记录,但是如果我使用DELETE FROM EMPGROUP_TB,其中MASTERID='76196';EMPGOUP TBL中的所有记录都将被删除吗?包括姓氏等?@chobowski整个记录包括所有细节都将被删除。见修改后的答案。如果是这样的话。如果您想要什么,那么“删除”不是正确的操作。您不能在一条语句中从多个表中删除
我非常不同意的语句,您当然可以。例如,表的内部或左侧连接…@mendosi非常感谢您的帮助。我得到了我想要的输出。@Zaggler是的,你是对的。我已经相应地编辑了我的答案。您必须先在主表上运行两个独立的delete
查询,然后在其他表上运行。您不能使用delete查询删除列。可以使用Update查询将值替换为null,为什么不使用Update?
UPDATE EMP_MASTERTBL
SET JOBTITLE = NULL
WHERE MASTERID = '76196';
DELETE FROM EMPGROUP_TB
WHERE MASTERID = '76196';