簡體   English   中英

在一個查詢SQL中刪除兩個表中的記錄

[英]Deleting record in two table in one query SQL

我有兩張桌子

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'. 錯誤。

可能是什么問題呢? 謝謝。

當您從某個表中刪除而不是從特定字段中刪除時,是否要刪除整行。 這就是為什么在編寫delete語句時不包含字段名稱的原因。

也可以在兩個表之間建立外鍵關系,這樣當您從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所有相關記錄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM