0

我正在尝试开发一个 SQL 查询来帮助我从基于 ASP.NET 的网站中提取一些数据。我正在使用 WebMatrix 在基于 ASP.NET 的网站上开发 SQL 紧凑型数据库 (sdf)。

我正在尝试在我的网站中实现代码来每月对数据库进行春季大扫除。我需要删除那些由用户创建但从未激活的帐户。因此,为了释放用户 ID 并管理数据库大小,我想我会在数据库上运行一个查询,以获取那些尚未得到用户确认且创建日期已过 20 天的帐户。

数据库结构是我的用户表称为“用户”。它有一个用户 ID(自动编号)、电子邮件、全名等字段。

由 ASP 的 WebSecurity 创建的表称为“webpages_Membership”。有UserID(自动编号)、CreationDate、IsConfirmed(账户是否已激活)等字段。

我不擅长开发 SQL 查询。我面临的问题是,当使用参数设置为 DeleteAllRecords 的 Membership.DeleteUser 方法删除用户时,它会删除用户表中相关用户的行,而在自己的表“webpages_Membership”中什么也不做。当用户尝试登录时,它只是检查电子邮件(用户 ID)是否存在于我的用户表中。因此,从长远来看,“webpages_Membership”中出现的帐户在“Users”表中不存在,因为它们已被删除。熟悉 WbeSecurity 行为的人一定都经历过以上这一切。

我正在尝试开发一个查询来查找“webpages_Membership”表,让我得到那些 IsConfirmed 字段设置为 False 的行(意味着那些帐户尚未激活),并确保“webpages_Membership”中的 UserID 字段也存在于“用户”表(这将确保帐户之前没有被删除)。

4

1 回答 1

0
select wm.* from webpages_Membership wm inner join Users u
on wm.UserID = u.UserID 
Where wm.IsConfirmed = 'false'
and DATEADD(dd,20,wm.CreationDate) <= getdate()
于 2012-09-06T09:39:53.437 回答