在JoePizza数据库中跨表删除指定条件的Printers表行
跨表关联删除Printers表数据的解决方案
针对你的需求,这里提供两种常用的跨表删除方法,适用于多数主流SQL数据库:
方法一:通过JOIN关联删除
这种方式直观高效,适合批量删除关联数据:
DELETE p FROM Printers p INNER JOIN Inventory i ON p.ItemNum = i.ItemNum WHERE i.Dept_ID = 45;
注:根据你提供的测试数据,Inventory表中ItemNum=105对应的Dept_ID是35,如果预期删除该行,需要把WHERE条件里的
45改为35。
方法二:使用子查询筛选目标记录
如果更习惯用子查询逻辑,也可以用IN子句匹配目标ItemNum:
DELETE FROM Printers WHERE ItemNum IN ( SELECT ItemNum FROM Inventory WHERE Dept_ID = 45 -- 同样,删除105需改为35 );
重要提示
执行删除操作前,一定要先验证目标记录,避免误删:
-- 验证JOIN方式的待删记录 SELECT p.* FROM Printers p INNER JOIN Inventory i ON p.ItemNum = i.ItemNum WHERE i.Dept_ID = 45; -- 验证子查询方式的待删记录 SELECT * FROM Printers WHERE ItemNum IN (SELECT ItemNum FROM Inventory WHERE Dept_ID=45);
内容的提问来源于stack exchange,提问作者Midnite
相关产品推荐
相关产品推荐

