应从多个表中删除记录

时间:2017-11-23 06:42:21

标签: mysql named-query

我有2个表Taxcon和Tax。如果我删除税务记录,那么应该删除taxcon中的相关记录

我想要一个命名查询。

我试过这个查询

delete t,c from TaxCon t JOIN t.tax c WHERE  c.code=:code

- >我的目的是在“代码”字段的帮助下删除税表中的记录,并删除Taxcon中的相关记录 但是我收到了一个错误 该查询包含格式错误的结尾

1 个答案:

答案 0 :(得分:0)

您需要一个连接条件,以便只删除两个表中的相关行。

DELETE t, c
FROM TaxCon AS t
JOIN Tax AS c ON t.code = c.code
WHERE c.code = :code

但是你可以通过声明一个外键来自动发生这种情况。

ALTER TABLE TaxCon ADD CONSTRAINT FOREIGN KEY (code) REFERENCES Tax (code) ON DELETE CASCADE;

然后您只需要删除Tax中的行,相关的TaxCon行就会被删除。