我有一张表可能有数千(可能是几百万?)的记录。它基本上是一个存储特殊日志条目的审计跟踪表。它被称为“日志”。在单个查询中选择主记录及其所有相关的外部详细记录?
还有一个名为“LogsExtended”的相关表,它为Logs表中的每个条目存储零个或多个附加记录。
有一个外键关系的设置,完成删除级联等
我做在日志表中的SELECT选择发生在一个特定的时间范围内的所有记录,说:“过去30天” 。
但是我想以某种方式同时在LogsExtended表中选择相关的外部记录。意图将此查询的结果填充到具有适当DataRelation设置的DataSet中。
我尝试过使用各种JOIN子句,但是这些都倾向于导致错误的行为 - LogsExtended表中每个相关记录的日志条目都会重复。
我真的想要避免显而易见的回退解决方案,即首先查询Logs表,然后对每个结果运行附加查询以获取LogsExtended记录。这让我感到非常浪费,并可能导致数千个查询正在运行。
我想我正在做一个这样的小山,但我无法弄清楚。
谢谢。
虽然这会导致“一个”表字段的重复,但如果需要在单个SQL查询/语句中执行,这可能是最好的方法。 – CraigTP 2009-07-20 10:56:00
因此除了返回大量重复记录之外,没有办法做到这一点? 只要我没有错过这里的一个窍门 - 那很好。 我想现在的问题是,在我的.NET应用程序中将这个“平面二维”数据转换为三维数据的最佳方式是什么?目前,我已经提出了一个即兴解决方案,它将重复条目汇总到一个条目中,同时将“LogsExtended”信息累积到一个集合中。 – nbevans 2009-07-20 11:02:01