0

我需要提出一个我发现有点复杂的查询。

这是我的数据库结构:

在此处输入图像描述

用户将添加/输入过滤器,并且根据过滤器,将显示相应的杂志和报纸收藏。

可能的过滤器是:

  • 杂志/报纸名称
  • 从日期
  • 迄今为止
  • 选择结果是否仅来自杂志或报纸或两者
  • 集合是否已被分析

好吧,假设用户输入了名称、日期、杂志和报纸,并且只输入了已分析的集合,查询会是什么样子?我想显示收藏日期、报纸/杂志名称、起止日期。我一直在试图弄清楚查询,但我有点挣扎。

有人有建议吗?希望一切都清楚:)

谢谢!

4

1 回答 1

1
  SELECT  m.name as mag_name,
          n.name as news_paper_name,
          c.fromDate,
          c.toDate
  FROM   Collections AS C

         INNER JOIN Target AS T ON
         C.TargetID = T.TargetID

         INNER JOIN Magazine AS M ON
         T.TargetID = M.id

         INNER JOIN Newspaper AS N ON
         T.TargerID = N.id

         INNER JOIN Analysis AS A ON
         C.CollectionID = A.CollectionID

这应该从连接的角度工作。我假设当某件事被分析时,分析中有一条记录,而当它被分析时没有记录。只需添加一个 where 子句和您想要过滤的任何信息。

于 2013-10-19T23:52:52.460 回答