要从三张表中删除与指定ID相关的记录,你可以使用以下几种方法,具体取决于你使用的数据库系统:
DELETE t1, t2, t3
FROM table1 t1
LEFT JOIN table2 t2 ON t1.id = t2.table1_id
LEFT JOIN table3 t3 ON t1.id = t3.table1_id
WHERE t1.id = ?;
WITH deleted_ids AS (
DELETE FROM table1 WHERE id = ? RETURNING id
)
DELETE FROM table2
WHERE table1_id IN (SELECT id FROM deleted_ids);
DELETE FROM table3
WHERE table1_id IN (SELECT id FROM deleted_ids);
如果你的表之间有外键约束并设置了ON DELETE CASCADE,只需删除主表记录即可:
DELETE FROM main_table WHERE id = ?;
sql
BEGIN TRANSACTION;
-- 你的删除语句
COMMIT;
-- 或 ROLLBACK; 如果出现问题
请根据你的具体数据库系统和表结构调整上述SQL语句。