基于单个输入从多个表中删除行

时间:2011-06-16 08:53:19

标签: tsql sql-server-2008 stored-procedures

我有三张桌子:

estate_field_data
estate_field_types
estate_fields

我在浏览器中输入的唯一内容是estate_field_types.ID = 3

estate_fields包含estate_field_types.ID => estate_fields.FieldType

的定义

estate_field_data没有estate_field_types.ID的定义,而是estate_field_data.FieldID => estate_fields.ID

如何使用此单个值从所有三行中删除?

谢谢! : - )

2 个答案:

答案 0 :(得分:3)

您必须将其作为3个单独的语句(除非您在外键引用上设置了级联删除)。我假设estate_fields中有一个PK(我选择称之为estate_field_idestate_field_data引用(否则,我不确定我们如何确定从该表中删除的内容)

delete from estate_field_data where estate_field_id in (select estate_field_id from estate_fields where FieldType = 3)

delete from estate_fields where FieldType = 3

delete from estate_field_types where ID = 3

答案 1 :(得分:-1)

尝试使用连接.... 达米恩......我们应该为联盟使用建议OP吗?在OP情况下可能会更快?

Delete K From estate_field_data K
Inner Join estate_fields F on F.estate_field_id = K.estate_field_id
Where F.estate_field_id = 3
相关问题