和传统意义的邮件系统不太一样,我这个是数据库的
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,诶,真是苦恼,不知道是表结构设计失败还是什么原因?
还要考虑自己的邮件归类,比如发件箱,收件箱,已删除,草稿箱