2つのテーブルがあります。report(reportIdの主キーとmigratedというビットフィールドがあります)とreport_detail(reportIdの外部キーがあります)です。レポートテーブルで移行されたreportIdを持つreport_detailからすべての行を削除したい=1。これは、必要なすべての行を選択するselectクエリです。
select *
from report r inner join report_detail d
on r.reportId = d.reportId
where migrated = 1
この削除クエリは私が望むことをしますか、それとも私は何か間違ったことをしていますか?
delete from report_detail
where exists(
select *
from report r inner join report_detail d
on r.reportId = d.reportId
where migrated = 1
)