和传统意义的邮件系统不太一样,我这个是数据库的
email表
id title content
1 test1 test1
2 test2 test2
3 test3 test3
4 test4 test4emailReceive表
emailID sendID receiveID isDelete(表示是否已删除) status(表示已读,未读等状态)
1 1 2
1 1 3
2 1 2
3 2 1
4 3 2一对多的关系,
假如我的sendID是1,得到我发送的邮件:
select * from email LEFT OUTER JOIN emailReceive ON email.id = emailReceive.emailID where sendID = 1
这样会重复于是使用:
SELECT *
FROM email
WHERE (id IN
(SELECT emailReceive.emailID
FROM emailReceive
WHERE emailReceive.sendid = 1 OR
receiveid = 1))
这样使用了in,但in效率又不高,因为我的数据库是SQL 2000,诶,真是苦恼,不知道是表结构设计失败还是什么原因?
还要考虑自己的邮件归类,比如发件箱,收件箱,已删除,草稿箱
email表
id title content
1 test1 test1
2 test2 test2
3 test3 test3
4 test4 test4emailReceive表
emailID sendID receiveID isDelete(表示是否已删除) status(表示已读,未读等状态)
1 1 2
1 1 3
2 1 2
3 2 1
4 3 2一对多的关系,
假如我的sendID是1,得到我发送的邮件:
select * from email LEFT OUTER JOIN emailReceive ON email.id = emailReceive.emailID where sendID = 1
这样会重复于是使用:
SELECT *
FROM email
WHERE (id IN
(SELECT emailReceive.emailID
FROM emailReceive
WHERE emailReceive.sendid = 1 OR
receiveid = 1))
这样使用了in,但in效率又不高,因为我的数据库是SQL 2000,诶,真是苦恼,不知道是表结构设计失败还是什么原因?
还要考虑自己的邮件归类,比如发件箱,收件箱,已删除,草稿箱
解决方案 »
- html页面放入VS2008失去效果的原因何在?
- 急,asp.net中序列化问题
- 查询语句
- 请问下在ASP.NET输出一个页面的时候,发生了那些事件?
- 急! 关于显示
- 连接数据库问题
- 连接access数据库 怎样从配置文件内连接ACCEss数据库
- 看过《Microsoft .NET Framework SDK 快速入门教程 === ASP.NET 快速入门 》的请进
- 有誰知道為什么asp文件在window server 2003不能執行嗎﹖
- Access插入数据的问题!同样的代码在操作SQL Server时则没有问题!救命啊!
- Repeater 数据绑定难题
- VS编写aspnet程序,在Design模式下显示不完全,浏览器浏览却完全,为什么会这样呢?
如果查询的两个表大小相当,那么用in和exists差别不大。
如果两个表中一个较小,一个是大表,则子查询表大的用exists,子查询表小的用in: