SQL:使用条件显示链接选项

标签 sql asp-classic vbscript ado

我正在尝试根据使用 2 个表格的条件为用户提供一个菜单选项。

我们有一个针对不同城镇的目录网站,每个城镇管理员都可以将子类别添加到主类别中,以便自定义其目录结构,但目前允许他们将子类别添加到已填充广告的其他子类别中 - 这不应该这样做。

我只想在尚未添加广告时才显示“添加子类别”到另一个子类别的选项。

例如,所有城镇目录中都有一个名为“会计师”的子类别。它在“Brentwood”目录中填充了客户广告,但不在“Shrewsbury”目录中填充。

如果使用下表和列中的数据满足以下三个条件,我只想显示“添加子类别”选项:

  • “Directories”表:需要是当前的特许经营城镇(使用“FranchiseGID”列)
  • “目录”表:它必须适用于每个单独的子类别(GID 列)
  • “客户”表:尚未注册在子类别(GID 列)中列出的客户

因此,使用这些表列的组合,使用“iAdvertCount”作为计数器,使用“ClientGID”来检查该特定子类别中是否有广告订阅;此外,它仅适用于当前的特许经营网站 (FranchiseGID)。

我可以从一个表中选择信息,但不能从多个表中选择信息 - 因此希望获得有关如何从上述列和表中选择所需信息的帮助。

以下是我对“目录”表的了解,但还需要添加“客户端”中的客户端 GID 条件:

Dim iAdvertCount

SQLCommand = "SELECT COUNT(*) AS Counter FROM Directories WHERE GID is not null AND FranchiseGID is not null"
rsTemp.Open SQLCommand, objConn, adOpenStatic, adLockReadOnly
iSubscriptionCount = rsTemp("Counter")
rsTemp.Close
if iSubscriptionCount = 0 then
    %><a href="AddDirectory.asp?PGID=<% = rsDirectory("GID") %>"><% = GetIcon("Add", "Add Sub Directory", 25, True) %></a><%
end if

到目前为止,我可以在包含 ClientGID 的任何网站特许经营(例如 Brentwood)目录上隐藏“添加子类别”选项,但它会应用于所有子类别,无论它们是否包含客户订阅/广告。

我希望有人能够提供帮助,并确实理解我所写的内容,以某种方式提供帮助,因为这会很有帮助!

最佳答案

我希望这不仅仅是众所周知的黑暗中的一枪

我相信您需要使用存在运算符。

exist operator在where子句中用于判断子查询是否返回结果。

因此您的查询可能如下所示:

SELECT COUNT(*) AS Counter
  FROM Directories
 WHERE GID is not null
   AND FranchiseGID is not null
   AND NOT EXISTS(SELECT 'ARBITRARY VALUE'
                    FROM clients
                   WHERE clients.gid = directories.gid)

exists 运算符利用 subquery这就是为什么我们能够引用目录表,即使它不在子查询的 from 子句中。因此,如果子查询返回任何内容,则不会返回并由 count 函数进行计数

您可能需要更改子查询的 where 子句才能使其正常工作,因为我不确定您的数据库的结构

关于SQL:使用条件显示链接选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5890592/

相关文章:

sql - 撤消日志错误 : No more space left over in system tablespace for allocating UNDO log pages

android - 应用程序执行一次后向数据库添加新表

batch-file - 批处理文件运行 VBScript

vbscript - 尝试使用 vbscript 运行带有参数的批处理文件

VBScript WScript.Shell Run() - 系统找不到指定的文件

sql - 如何在 SQL Server 中仅更新日期中的天数

java - 删除重复项方法不会删除重复项

c# - 在 C# (ASP.MVC) 中将 Access DB (.mdb) 与 ADODB 一起使用,就像使用经典 ASP

jquery - 页面中出现奇怪的空白区域。可能是 CSS?

asp-classic - 错误 : The HTTP headers are already written to the client browser