【发布时间】:2011-12-23 18:47:01
【问题描述】:
我有一个包含许多列的表,这些列将用于保存用户存储的搜索。
每天都需要发送一封包含最新搜索结果的电子邮件。 可能有数千个已保存的搜索。
我保存的搜索表中的列类似于以下内容:
Id
userEmail
SearchParam1
SearchParam2
SearchParam3
由于会有如此多的搜索,我预计会有很多相同的搜索,因此我希望获取 param1、2 和 3 相同但仍可以访问用户电子邮件的每一行,以便我可以发送无需多次运行相同的搜索即可获得相同的结果。
理想情况下,我想要这样的东西:
SearchParam1, SearchParam2, SearchParam3
|
|____Email1
|
|____Email2
|
|____Email3
按搜索参数分组,但以某种方式链接到电子邮件。
我什至不知道从哪里开始,因此我没有添加任何代码。 谁能给我一些建议?
编辑 只是为了澄清。一封电子邮件在表格中不会出现多次。所以从技术上讲,他们每个人只能保存 1 次搜索。
没有这样的用户,只有电子邮件地址。
贝克斯
【问题讨论】:
-
为什么不在 group by 中包含 userEmail。
-
电子邮件会有所不同,所以如果 3 行相同但使用不同的电子邮件,不只是选择 3 个单独的行吗?除非我错过了什么?
-
@Bex:所以没有用户会运行多个查询? (或者
userEmail表示的不是用户的电子邮件地址?) -
没有人会运行很多查询.. 但他们会选择只保存一个结果将通过电子邮件发送!也许我的问题不清楚?
-
@Bex:我认为现在更清楚了 - 该表用于保存每个用户的首选/最近查询。在这种情况下,查询中不需要分组 - 只需排序。您表示需要的格式(仅包括更改时的 SearchParam 值)通常最好在 SQL 之外处理 - 例如,在 SSRS 中。
标签: c# sql group-by subsonic grouping