Mysql 从满足其他表中条件的表中删除

Mysql 从满足其他表中条件的表中删除,mysql,sql,Mysql,Sql,我是SQL新手,因此我感谢您的帮助,并请您原谅。如果这是一件简单的事情,我在其他相关帖子中找不到帮助我的答案 我必须使用表PRC\u FIX和IM\u ITEM。它们都有一列项目编号。我想删除PRC\u FIX中的一行,其中IM\u ITEM.ITEM\u VEND\u NO等于TOYM 我需要做一些加入吗?再次感谢你的帮助 编辑:我不需要帮助设置级联删除。我在问,当IM\u项目中的匹配行满足特定条件时,如何仅从PRC\u FIX中删除一行。正确的方法是设置级联删除外键约束 首先,删除不存在的内

我是SQL新手,因此我感谢您的帮助,并请您原谅。如果这是一件简单的事情,我在其他相关帖子中找不到帮助我的答案

我必须使用表
PRC\u FIX
IM\u ITEM
。它们都有一列
项目编号
。我想删除
PRC\u FIX
中的一行,其中
IM\u ITEM.ITEM\u VEND\u NO
等于
TOYM

我需要做一些加入吗?再次感谢你的帮助


编辑:我不需要帮助设置级联删除。我在问,当
IM\u项目
中的匹配行满足特定条件时,如何仅从
PRC\u FIX
中删除一行。

正确的方法是设置级联删除外键约束

首先,删除不存在的内容:

delete f from prc_fix f
    where not exists (select 1 from im_item i where i.item_no = f.item_no);
然后,要在从
im\u项目中删除行时自动删除行,请执行以下操作:

alter table prc_fix add constraint fk_prc_fix_item_no
    foreign key (im_item) references im_item(item_no) on delete cascade;

正确的方法是设置级联删除外键约束

首先,删除不存在的内容:

delete f from prc_fix f
    where not exists (select 1 from im_item i where i.item_no = f.item_no);
然后,要在从
im\u项目中删除行时自动删除行,请执行以下操作:

alter table prc_fix add constraint fk_prc_fix_item_no
    foreign key (im_item) references im_item(item_no) on delete cascade;
聪明的方法:

DELETE PRC_FIX
FROM PRC_FIX
INNER JOIN IM_ITEM ON IM_ITEM.ITEM_NO = PRC_FIX.ITEM_NO 
           AND IM_ITEM.ITEM_VEND_NO = 'TOYM'
我希望能对您有所帮助:)

聪明的方法:

DELETE PRC_FIX
FROM PRC_FIX
INNER JOIN IM_ITEM ON IM_ITEM.ITEM_NO = PRC_FIX.ITEM_NO 
           AND IM_ITEM.ITEM_VEND_NO = 'TOYM'

我希望能对您有所帮助:)

当他们从IM项目中删除时,他们已经被设置为从PRC\U修复中删除。我只希望在满足特定条件时从PRC_修复中删除它们。当它们从IM_项目中删除时,它们已设置为从PRC_修复中删除。我希望在满足特定条件时仅从PRC_FIX中删除。我的回答中的脚本只删除
PRC_FIX
,如您所愿。试试看,让我知道结果。我回答中的脚本会根据需要删除
PRC\u FIX
。试试看,让我知道结果。我试试看。谢谢你做到了。谢谢我试试看。谢谢你做到了。谢谢