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