需要帮助开发SQL查询

时间:2012-09-06 09:18:32

标签: asp.net sql security sdf

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

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

数据库结构是我的用户表称为“用户”。它有UserID(自动编号),电子邮件,FullName等字段。

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

我不擅长开发SQL查询。我面临的问题是,当使用Membership.DeleteUser方法删除用户并将参数设置为DeleteAllRecords时,它会删除Users表中的相关用户行,而它在自己的表“webpages_Membership”中不执行任何操作。当用户尝试登录时,它只会检查我的“用户”表中是否存在电子邮件(用户标识)。因此,从长远来看,“webpages_Membership”中出现了一些帐户,这些帐户在“用户”表中不存在,因为它们已被删除。熟悉WbeSecurity行为的人必须经历上述所有这些。

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

1 个答案:

答案 0 :(得分: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()