【发布时间】:2016-11-12 22:10:40
【问题描述】:
我有两张桌子
Person (contain oldest date (farthest in future) when person moved OR WILL moved to another address)
ID OLDESTADDRESSMOVEDATE
1 20161117
2 20171211
3 20160101
Address
PersonID AddressMOVETODATE
1 20161117
1 20161111
1 20141018
2 20171211
2 20151210
现在我想编写一个 DELETE 查询,它将删除 PERSON 中每个人的 ADDRESS THE ROWS,其中 AddressMOVETODATE 比 OLDESTADDRESSMOVEDATE 列中的要早
例如
如果我运行该查询,ADDRESS 表中的剩余行应该是
PersonID AddressMOVETODATE
1 20161117
2 20171211
我试过了
DELETE FROM ADDRESS WHERE PERSONID = PERSON.ID and AddressMOVETODATE < Person.OLDESTADDRESSMOVEDATE
但它不起作用。此外,我们将如何确保仅输入 Person 表的对应列,例如我们不想把
Person ID = 1 and Person.OLDESTADDRESSMOVEDATE = 20171211 (of Person 2)
请帮忙。
谢谢,
艾登
【问题讨论】:
-
可能正在使用光标或内部连接
-
请不要将您的问题标题全部大写。这在此处被认为是在大喊大叫,因为它在网络上的其他任何地方都存在。它不会让你尽快得到答案,它会使文本更难阅读,而且真的很粗鲁和烦人。请有礼貌;键盘两侧都有 Shift 键,便于操作,因为大小写正确的文本更易于阅读和理解。谢谢。
-
糟糕,抱歉,不会再这样做了
标签: sql sql-server sql-delete