首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从两个表中获取两种不同类型的值,并在网格视图模板中显示

从两个表中获取两种不同类型的值,并在网格视图模板中显示
EN

Stack Overflow用户
提问于 2015-10-21 06:28:37
回答 2查看 36关注 0票数 0

这里有一个有点混乱的场景。我有两个tables.One表存储已注册(TblAllUsers)的新用户,另一个存储新创建的事件(TblAllEvents).Now,我希望通过注册日期时间以网格视图顺序显示两个表的组合,以便:

如果最新的值来自tblAllUsers,它应该显示"Michael刚刚在网站上注册“,其中Michael是tblalluser中用户的名字。

如果价值来自tblAllEvents,它应该显示“钢琴展览是由User34创造的”,其中钢琴展览是EventName in tblAllEvents

到目前为止,我已经尝试创建两个表的联合,如下所示:

代码语言:javascript
复制
 Select FirstName,RegDateTime from tblAllUsers 
 UNION ALL
 Select EventName,RegDateTime from tblAllEvents
 ORDER BY RegDateTime DESC

但是上面给出了FirstName和FirstName列下的标题,很难区分。

如何设计网格视图模板?

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-21 07:00:15

您可以这样更改查询:

代码语言:javascript
复制
SELECT     FirstName, NULL AS EventName, RegDateTime 
FROM       tblAllUsers 
UNION ALL
SELECT     NULL, EventName, RegDateTime 
FROM       tblAllEvents
ORDER BY   RegDateTime DESC

现在您有三个列,FirstName或EventName将根据它来自哪个表而被填充。

在您的GridView中,您可以测试哪个值是空的(EventName还是FirstName),并相应地更改文本。

编辑:您甚至可以只返回第一行(带有最新的RegDateTime):

代码语言:javascript
复制
SELECT      TOP 1 *
FROM        (SELECT     FirstName, NULL AS EventName, RegDateTime 
            FROM        tblAllUsers
            UNION ALL
            SELECT      NULL, EventName, RegDateTime 
            FROM        tblAllEvents) AS a
ORDER BY    RegDateTime DESC
票数 1
EN

Stack Overflow用户

发布于 2015-10-21 07:16:56

您可以选择添加一个event type列,并使用它检查如何在网格视图中处理它。

代码语言:javascript
复制
 Select 'User' as EventType, FirstName,RegDateTime from tblAllUsers 
 UNION ALL
 Select 'Event' as EventType, EventName,RegDateTime from tblAllEvents
 ORDER BY RegDateTime DESC

您可能还需要在'Event'中添加用户名,因为您还显示了创建事件的用户的名称。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33252376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档