2017-11-23 11 views
0

에서 삭제해야합니다. 하지만를 삭제해야> 여기 내 의도 "코드"필드의 도움과 Taxcon의 관련 기록과 세금 테이블에서 레코드를 삭제하는 것입니다 -기록은 내가 그에 대한 namedquery을 원하는 다음 taxcon의 releated 기록</p> <p>삭제해야 세금에 대한 기록을 삭제 나는이 개 테이블 Taxcon 및 세금 .If이 여러 테이블

나는

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

이 쿼리를 시도 오류가 발생했습니다 쿼리에 잘못된 형식의 단점이 있습니다.

+0

왜 외부 키 캐스케이드로 설정하지 않습니까? 그러면 자동으로 삭제됩니다. – Barmar

답변

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 행이 삭제됩니다.