我有两个表通知和mailmessages。
通知表
- 通知时间
- NotifyNumber
- AccountNumber
MailMessages表
- id
- messageSubject
- MessageNumber
- AccountNumber
我的目标是创建单个sql查询以从mailmessages中检索不同的行WHERE accountnumber是一个特定的数字和notifynumber = messagenumber只有来自通知表的最近的notifytime,其中两个表中的accountnumbers匹配。
我使用sqlexpress2008作为asp.net页面的后端。此查询应返回仅包含通知表中最新日期的帐户的不同消息。
请帮忙!我给你买啤酒!!!
答案 0 :(得分:0)
试试这个......
SELECT MM.MaxNotifyTime, Notify.MaxNotifyTime
FROM MailMessages MM
INNER JOIN (SELECT Max(NotifyTime) MaxNotifyTime, AccountNumber
FROM Notifications
GROUP BY AccountNumber) Notify ON (MM.AccountNumber=Notify.AccountNumber)
WHERE (MM.AccountNumber=1)
答案 1 :(得分:0)
SELECT MM.MessageNumber, MAX(N.NotifyTime) MaxTime
FROM MailMessages MM
INNER JOIN Notifications N
ON MM.AccountNumber = N.AccountNumber AND MM.MessageNumber = N.NotifyNumber
WHERE MM.AccountNumber = 1
GROUP BY MM.MessageNumber
这限制了给定的AccountNumber(= 1)并输出每个关联的MessageNumber以及Notifications中最新的相应条目的日期。